public final class org.graalvm.options.OptionType<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.options.OptionType
  super_class: java.lang.Object
{
  private static final java.util.function.Consumer<?> EMPTY_VALIDATOR;
    descriptor: Ljava/util/function/Consumer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Consumer<*>;

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

  private final org.graalvm.options.OptionType$Converter<T> converter;
    descriptor: Lorg/graalvm/options/OptionType$Converter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/graalvm/options/OptionType$Converter<TT;>;

  private final java.util.function.Consumer<T> validator;
    descriptor: Ljava/util/function/Consumer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/function/Consumer<TT;>;

  private final boolean isOptionMap;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final java.util.Map<java.lang.Class<?>, org.graalvm.options.OptionType<?>> DEFAULTTYPES;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lorg/graalvm/options/OptionType<*>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 56
            new org.graalvm.options.OptionType$1
            dup
            invokespecial org.graalvm.options.OptionType$1.<init>:()V
            putstatic org.graalvm.options.OptionType.EMPTY_VALIDATOR:Ljava/util/function/Consumer;
         1: .line 197
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic org.graalvm.options.OptionType.DEFAULTTYPES:Ljava/util/Map;
         2: .line 199
            getstatic org.graalvm.options.OptionType.DEFAULTTYPES:Ljava/util/Map;
            ldc Ljava/lang/Boolean;
            new org.graalvm.options.OptionType
            dup
            ldc "Boolean"
            new org.graalvm.options.OptionType$2
            dup
            invokespecial org.graalvm.options.OptionType$2.<init>:()V
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 210
            getstatic org.graalvm.options.OptionType.DEFAULTTYPES:Ljava/util/Map;
            ldc Ljava/lang/Byte;
            new org.graalvm.options.OptionType
            dup
            ldc "Byte"
            new org.graalvm.options.OptionType$3
            dup
            invokespecial org.graalvm.options.OptionType$3.<init>:()V
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 219
            getstatic org.graalvm.options.OptionType.DEFAULTTYPES:Ljava/util/Map;
            ldc Ljava/lang/Integer;
            new org.graalvm.options.OptionType
            dup
            ldc "Integer"
            new org.graalvm.options.OptionType$4
            dup
            invokespecial org.graalvm.options.OptionType$4.<init>:()V
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 228
            getstatic org.graalvm.options.OptionType.DEFAULTTYPES:Ljava/util/Map;
            ldc Ljava/lang/Long;
            new org.graalvm.options.OptionType
            dup
            ldc "Long"
            new org.graalvm.options.OptionType$5
            dup
            invokespecial org.graalvm.options.OptionType$5.<init>:()V
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 237
            getstatic org.graalvm.options.OptionType.DEFAULTTYPES:Ljava/util/Map;
            ldc Ljava/lang/Float;
            new org.graalvm.options.OptionType
            dup
            ldc "Float"
            new org.graalvm.options.OptionType$6
            dup
            invokespecial org.graalvm.options.OptionType$6.<init>:()V
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 246
            getstatic org.graalvm.options.OptionType.DEFAULTTYPES:Ljava/util/Map;
            ldc Ljava/lang/Double;
            new org.graalvm.options.OptionType
            dup
            ldc "Double"
            new org.graalvm.options.OptionType$7
            dup
            invokespecial org.graalvm.options.OptionType$7.<init>:()V
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 255
            getstatic org.graalvm.options.OptionType.DEFAULTTYPES:Ljava/util/Map;
            ldc Ljava/lang/String;
            new org.graalvm.options.OptionType
            dup
            ldc "String"
            new org.graalvm.options.OptionType$8
            dup
            invokespecial org.graalvm.options.OptionType$8.<init>:()V
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 260
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.util.function.Function<java.lang.String, T>, java.util.function.Consumer<T>);
    descriptor: (Ljava/lang/String;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.options.OptionType this
        start local 1 // java.lang.String name
        start local 2 // java.util.function.Function stringConverter
        start local 3 // java.util.function.Consumer validator
         0: .line 79
            aload 0 /* this */
            aload 1 /* name */
            new org.graalvm.options.OptionType$9
            dup
            aload 2 /* stringConverter */
            invokespecial org.graalvm.options.OptionType$9.<init>:(Ljava/util/function/Function;)V
         1: .line 84
            aload 3 /* validator */
            iconst_0
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Lorg/graalvm/options/OptionType$Converter;Ljava/util/function/Consumer;Z)V
         2: .line 85
            return
        end local 3 // java.util.function.Consumer validator
        end local 2 // java.util.function.Function stringConverter
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/graalvm/options/OptionType<TT;>;
            0    3     1             name  Ljava/lang/String;
            0    3     2  stringConverter  Ljava/util/function/Function<Ljava/lang/String;TT;>;
            0    3     3        validator  Ljava/util/function/Consumer<TT;>;
    Signature: (Ljava/lang/String;Ljava/util/function/Function<Ljava/lang/String;TT;>;Ljava/util/function/Consumer<TT;>;)V
    MethodParameters:
                 Name  Flags
      name             
      stringConverter  
      validator        

  private void <init>(java.lang.String, org.graalvm.options.OptionType$Converter<T>, java.util.function.Consumer<T>, );
    descriptor: (Ljava/lang/String;Lorg/graalvm/options/OptionType$Converter;Ljava/util/function/Consumer;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.graalvm.options.OptionType this
        start local 1 // java.lang.String name
        start local 2 // org.graalvm.options.OptionType$Converter converter
        start local 3 // java.util.function.Consumer validator
        start local 4 // boolean isOptionMap
         0: .line 87
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 88
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 89
            aload 2 /* converter */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 90
            aload 3 /* validator */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 91
            aload 0 /* this */
            aload 1 /* name */
            putfield org.graalvm.options.OptionType.name:Ljava/lang/String;
         5: .line 92
            aload 0 /* this */
            aload 2 /* converter */
            putfield org.graalvm.options.OptionType.converter:Lorg/graalvm/options/OptionType$Converter;
         6: .line 93
            aload 0 /* this */
            aload 3 /* validator */
            putfield org.graalvm.options.OptionType.validator:Ljava/util/function/Consumer;
         7: .line 94
            aload 0 /* this */
            iload 4 /* isOptionMap */
            putfield org.graalvm.options.OptionType.isOptionMap:Z
         8: .line 95
            return
        end local 4 // boolean isOptionMap
        end local 3 // java.util.function.Consumer validator
        end local 2 // org.graalvm.options.OptionType$Converter converter
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/graalvm/options/OptionType<TT;>;
            0    9     1         name  Ljava/lang/String;
            0    9     2    converter  Lorg/graalvm/options/OptionType$Converter<TT;>;
            0    9     3    validator  Ljava/util/function/Consumer<TT;>;
            0    9     4  isOptionMap  Z
    Signature: (Ljava/lang/String;Lorg/graalvm/options/OptionType$Converter<TT;>;Ljava/util/function/Consumer<TT;>;Z)V
    MethodParameters:
             Name  Flags
      name         
      converter    
      validator    
      isOptionMap  

  public void <init>(java.lang.String, java.util.function.Function<java.lang.String, T>);
    descriptor: (Ljava/lang/String;Ljava/util/function/Function;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.options.OptionType this
        start local 1 // java.lang.String name
        start local 2 // java.util.function.Function stringConverter
         0: .line 109
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* stringConverter */
            getstatic org.graalvm.options.OptionType.EMPTY_VALIDATOR:Ljava/util/function/Consumer;
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
         1: .line 110
            return
        end local 2 // java.util.function.Function stringConverter
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/graalvm/options/OptionType<TT;>;
            0    2     1             name  Ljava/lang/String;
            0    2     2  stringConverter  Ljava/util/function/Function<Ljava/lang/String;TT;>;
    Signature: (Ljava/lang/String;Ljava/util/function/Function<Ljava/lang/String;TT;>;)V
    MethodParameters:
                 Name  Flags
      name             
      stringConverter  

  public void <init>(java.lang.String, T, java.util.function.Function<java.lang.String, T>, java.util.function.Consumer<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.graalvm.options.OptionType this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object defaultValue
        start local 3 // java.util.function.Function stringConverter
        start local 4 // java.util.function.Consumer validator
         0: .line 119
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* stringConverter */
            aload 4 /* validator */
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
         1: .line 120
            return
        end local 4 // java.util.function.Consumer validator
        end local 3 // java.util.function.Function stringConverter
        end local 2 // java.lang.Object defaultValue
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/graalvm/options/OptionType<TT;>;
            0    2     1             name  Ljava/lang/String;
            0    2     2     defaultValue  TT;
            0    2     3  stringConverter  Ljava/util/function/Function<Ljava/lang/String;TT;>;
            0    2     4        validator  Ljava/util/function/Consumer<TT;>;
    Signature: (Ljava/lang/String;TT;Ljava/util/function/Function<Ljava/lang/String;TT;>;Ljava/util/function/Consumer<TT;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                 Name  Flags
      name             
      defaultValue     
      stringConverter  
      validator        

  public void <init>(java.lang.String, T, java.util.function.Function<java.lang.String, T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/util/function/Function;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.graalvm.options.OptionType this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object defaultValue
        start local 3 // java.util.function.Function stringConverter
         0: .line 129
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* stringConverter */
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
         1: .line 130
            return
        end local 3 // java.util.function.Function stringConverter
        end local 2 // java.lang.Object defaultValue
        end local 1 // java.lang.String name
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/graalvm/options/OptionType<TT;>;
            0    2     1             name  Ljava/lang/String;
            0    2     2     defaultValue  TT;
            0    2     3  stringConverter  Ljava/util/function/Function<Ljava/lang/String;TT;>;
    Signature: (Ljava/lang/String;TT;Ljava/util/function/Function<Ljava/lang/String;TT;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                 Name  Flags
      name             
      defaultValue     
      stringConverter  

  public T getDefaultValue();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.options.OptionType this
         0: .line 138
            aconst_null
            areturn
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/options/OptionType<TT;>;
    Signature: ()TT;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.options.OptionType this
         0: .line 147
            aload 0 /* this */
            getfield org.graalvm.options.OptionType.name:Ljava/lang/String;
            areturn
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/options/OptionType<TT;>;

  public T convert(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.graalvm.options.OptionType this
        start local 1 // java.lang.String value
         0: .line 157
            aload 0 /* this */
            getfield org.graalvm.options.OptionType.converter:Lorg/graalvm/options/OptionType$Converter;
            aconst_null
            aconst_null
            aload 1 /* value */
            invokeinterface org.graalvm.options.OptionType$Converter.convert:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* v */
        start local 2 // java.lang.Object v
         1: .line 158
            aload 0 /* this */
            aload 2 /* v */
            invokevirtual org.graalvm.options.OptionType.validate:(Ljava/lang/Object;)V
         2: .line 159
            aload 2 /* v */
            areturn
        end local 2 // java.lang.Object v
        end local 1 // java.lang.String value
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/graalvm/options/OptionType<TT;>;
            0    3     1  value  Ljava/lang/String;
            1    3     2      v  TT;
    Signature: (Ljava/lang/String;)TT;
    MethodParameters:
       Name  Flags
      value  

  public T convert(, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.graalvm.options.OptionType this
        start local 1 // java.lang.Object previousValue
        start local 2 // java.lang.String nameSuffix
        start local 3 // java.lang.String value
         0: .line 173
            aload 0 /* this */
            getfield org.graalvm.options.OptionType.converter:Lorg/graalvm/options/OptionType$Converter;
            aload 1 /* previousValue */
            aload 2 /* nameSuffix */
            aload 3 /* value */
            invokeinterface org.graalvm.options.OptionType$Converter.convert:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            astore 4 /* v */
        start local 4 // java.lang.Object v
         1: .line 174
            aload 0 /* this */
            aload 4 /* v */
            invokevirtual org.graalvm.options.OptionType.validate:(Ljava/lang/Object;)V
         2: .line 175
            aload 4 /* v */
            areturn
        end local 4 // java.lang.Object v
        end local 3 // java.lang.String value
        end local 2 // java.lang.String nameSuffix
        end local 1 // java.lang.Object previousValue
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/graalvm/options/OptionType<TT;>;
            0    3     1  previousValue  Ljava/lang/Object;
            0    3     2     nameSuffix  Ljava/lang/String;
            0    3     3          value  Ljava/lang/String;
            1    3     4              v  TT;
    Signature: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)TT;
    MethodParameters:
               Name  Flags
      previousValue  
      nameSuffix     
      value          

  public void validate();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.options.OptionType this
        start local 1 // java.lang.Object value
         0: .line 186
            aload 0 /* this */
            getfield org.graalvm.options.OptionType.validator:Ljava/util/function/Consumer;
            aload 1 /* value */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         1: .line 187
            return
        end local 1 // java.lang.Object value
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/graalvm/options/OptionType<TT;>;
            0    2     1  value  TT;
    Signature: (TT;)V
    MethodParameters:
       Name  Flags
      value  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.options.OptionType this
         0: .line 194
            new java.lang.StringBuilder
            dup
            ldc "OptionType[name="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.options.OptionType.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/options/OptionType<TT;>;

  public static <T> org.graalvm.options.OptionType<T> defaultType(T);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/options/OptionType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 270
            aload 0 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.graalvm.options.OptionType.defaultType:(Ljava/lang/Class;)Lorg/graalvm/options/OptionType;
            areturn
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  TT;
    Signature: <T:Ljava/lang/Object;>(TT;)Lorg/graalvm/options/OptionType<TT;>;
    MethodParameters:
       Name  Flags
      value  

  static <V> org.graalvm.options.OptionType<org.graalvm.options.OptionMap<V>> mapOf(java.lang.Class<V>);
    descriptor: (Ljava/lang/Class;)Lorg/graalvm/options/OptionType;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.Class valueClass
         0: .line 279
            aload 0 /* valueClass */
            invokestatic org.graalvm.options.OptionType.defaultType:(Ljava/lang/Class;)Lorg/graalvm/options/OptionType;
            astore 1 /* valueType */
        start local 1 // org.graalvm.options.OptionType valueType
         1: .line 280
            aload 1 /* valueType */
            ifnonnull 3
         2: .line 281
            aconst_null
            areturn
         3: .line 283
      StackMap locals: org.graalvm.options.OptionType
      StackMap stack:
            new org.graalvm.options.OptionType
            dup
            ldc "OptionMap"
            new org.graalvm.options.OptionType$10
            dup
            aload 1 /* valueType */
            invokespecial org.graalvm.options.OptionType$10.<init>:(Lorg/graalvm/options/OptionType;)V
         4: .line 293
            getstatic org.graalvm.options.OptionType.EMPTY_VALIDATOR:Ljava/util/function/Consumer;
            iconst_1
         5: .line 283
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Lorg/graalvm/options/OptionType$Converter;Ljava/util/function/Consumer;Z)V
            areturn
        end local 1 // org.graalvm.options.OptionType valueType
        end local 0 // java.lang.Class valueClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0  valueClass  Ljava/lang/Class<TV;>;
            1    6     1   valueType  Lorg/graalvm/options/OptionType<TV;>;
    Signature: <V:Ljava/lang/Object;>(Ljava/lang/Class<TV;>;)Lorg/graalvm/options/OptionType<Lorg/graalvm/options/OptionMap<TV;>;>;
    MethodParameters:
            Name  Flags
      valueClass  

  public static <T> org.graalvm.options.OptionType<T> defaultType(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/graalvm/options/OptionType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 304
            getstatic org.graalvm.options.OptionType.DEFAULTTYPES:Ljava/util/Map;
            aload 0 /* clazz */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.options.OptionType
            astore 1 /* type */
        start local 1 // org.graalvm.options.OptionType type
         1: .line 305
            aload 1 /* type */
            ifnull 3
         2: .line 306
            aload 1 /* type */
            areturn
         3: .line 308
      StackMap locals: org.graalvm.options.OptionType
      StackMap stack:
            ldc Ljava/lang/Enum;
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
         4: .line 309
            aload 0 /* clazz */
            invokestatic org.graalvm.options.OptionType.defaultEnumType:(Ljava/lang/Class;)Lorg/graalvm/options/OptionType;
            areturn
         5: .line 311
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.graalvm.options.OptionType type
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  clazz  Ljava/lang/Class<TT;>;
            1    6     1   type  Lorg/graalvm/options/OptionType<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/graalvm/options/OptionType<TT;>;
    MethodParameters:
       Name  Flags
      clazz  

  private static <T> org.graalvm.options.OptionType<T> defaultEnumType(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/graalvm/options/OptionType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 316
            new org.graalvm.options.OptionType
            dup
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            new org.graalvm.options.OptionType$11
            dup
            aload 0 /* clazz */
            invokespecial org.graalvm.options.OptionType$11.<init>:(Ljava/lang/Class;)V
            invokespecial org.graalvm.options.OptionType.<init>:(Ljava/lang/String;Ljava/util/function/Function;)V
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/graalvm/options/OptionType<TT;>;
    MethodParameters:
       Name  Flags
      clazz  

  boolean isOptionMap();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.options.OptionType this
         0: .line 343
            aload 0 /* this */
            getfield org.graalvm.options.OptionType.isOptionMap:Z
            ireturn
        end local 0 // org.graalvm.options.OptionType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/options/OptionType<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "OptionType.java"
NestMembers:
  org.graalvm.options.OptionType$1  org.graalvm.options.OptionType$10  org.graalvm.options.OptionType$11  org.graalvm.options.OptionType$2  org.graalvm.options.OptionType$3  org.graalvm.options.OptionType$4  org.graalvm.options.OptionType$5  org.graalvm.options.OptionType$6  org.graalvm.options.OptionType$7  org.graalvm.options.OptionType$8  org.graalvm.options.OptionType$9  org.graalvm.options.OptionType$Converter
InnerClasses:
  org.graalvm.options.OptionType$1
  org.graalvm.options.OptionType$10
  org.graalvm.options.OptionType$11
  org.graalvm.options.OptionType$2
  org.graalvm.options.OptionType$3
  org.graalvm.options.OptionType$4
  org.graalvm.options.OptionType$5
  org.graalvm.options.OptionType$6
  org.graalvm.options.OptionType$7
  org.graalvm.options.OptionType$8
  org.graalvm.options.OptionType$9
  private abstract Converter = org.graalvm.options.OptionType$Converter of org.graalvm.options.OptionType