public class org.graalvm.compiler.options.OptionValue<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.options.OptionValue
  super_class: java.lang.Object
{
  private static final java.lang.ThreadLocal<org.graalvm.compiler.options.OptionValue$OverrideScope> overrideScopeTL;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Lorg/graalvm/compiler/options/OptionValue$OverrideScope;>;

  private T defaultValue;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Signature: TT;

  protected T value;
    descriptor: Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Signature: TT;

  private org.graalvm.compiler.options.OptionDescriptor descriptor;
    descriptor: Lorg/graalvm/compiler/options/OptionDescriptor;
    flags: (0x0002) ACC_PRIVATE

  private long reads;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.options.OptionValue<?> next;
    descriptor: Lorg/graalvm/compiler/options/OptionValue;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/graalvm/compiler/options/OptionValue<*>;

  private static org.graalvm.compiler.options.OptionValue<?> head;
    descriptor: Lorg/graalvm/compiler/options/OptionValue;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Lorg/graalvm/compiler/options/OptionValue<*>;

  public static final java.lang.String PROFILE_OPTIONVALUE_PROPERTY_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "graal.profileOptionValue"

  private static final boolean ProfileOptionValue;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  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=3, locals=0, args_size=0
         0: .line 38
            ldc Lorg/graalvm/compiler/options/OptionValue;
            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 org.graalvm.compiler.options.OptionValue.$assertionsDisabled:Z
         3: .line 134
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic org.graalvm.compiler.options.OptionValue.overrideScopeTL:Ljava/lang/ThreadLocal;
         4: .line 163
            ldc "graal.profileOptionValue"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putstatic org.graalvm.compiler.options.OptionValue.ProfileOptionValue:Z
         5: .line 181
            ldc "DEFAULT"
            putstatic org.graalvm.compiler.options.OptionValue.DEFAULT:Ljava/lang/Object;
         6: .line 182
            ldc "UNINITIALIZED"
            putstatic org.graalvm.compiler.options.OptionValue.UNINITIALIZED:Ljava/lang/Object;
         7: .line 487
            getstatic org.graalvm.compiler.options.OptionValue.ProfileOptionValue:Z
            ifeq 9
         8: .line 488
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            new org.graalvm.compiler.options.OptionValue$1
            dup
            invokespecial org.graalvm.compiler.options.OptionValue$1.<init>:()V
            invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
         9: .line 516
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.graalvm.compiler.options.OptionValue$OverrideScope override(org.graalvm.compiler.options.OptionValue<?>, );
    descriptor: (Lorg/graalvm/compiler/options/OptionValue;Ljava/lang/Object;)Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.options.OptionValue option
        start local 1 // java.lang.Object value
         0: .line 54
            invokestatic org.graalvm.compiler.options.OptionValue.getOverrideScope:()Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            astore 2 /* current */
        start local 2 // org.graalvm.compiler.options.OptionValue$OverrideScope current
         1: .line 55
            aload 2 /* current */
            ifnonnull 6
         2: .line 56
            aload 1 /* value */
            aload 0 /* option */
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 57
            new org.graalvm.compiler.options.OptionValue$SingleOverrideScope
            dup
            aload 0 /* option */
            aload 1 /* value */
            invokespecial org.graalvm.compiler.options.OptionValue$SingleOverrideScope.<init>:(Lorg/graalvm/compiler/options/OptionValue;Ljava/lang/Object;)V
            areturn
         4: .line 59
      StackMap locals: org.graalvm.compiler.options.OptionValue$OverrideScope
      StackMap stack:
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            astore 3 /* overrides */
        start local 3 // java.util.Map overrides
         5: .line 60
            new org.graalvm.compiler.options.OptionValue$MultipleOverridesScope
            dup
            aload 2 /* current */
            aload 3 /* overrides */
            invokespecial org.graalvm.compiler.options.OptionValue$MultipleOverridesScope.<init>:(Lorg/graalvm/compiler/options/OptionValue$OverrideScope;Ljava/util/Map;)V
            areturn
        end local 3 // java.util.Map overrides
         6: .line 62
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.options.OptionValue$MultipleOverridesScope
            dup
            aload 2 /* current */
            aload 0 /* option */
            aload 1 /* value */
            invokespecial org.graalvm.compiler.options.OptionValue$MultipleOverridesScope.<init>:(Lorg/graalvm/compiler/options/OptionValue$OverrideScope;Lorg/graalvm/compiler/options/OptionValue;Ljava/lang/Object;)V
            areturn
        end local 2 // org.graalvm.compiler.options.OptionValue$OverrideScope current
        end local 1 // java.lang.Object value
        end local 0 // org.graalvm.compiler.options.OptionValue option
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0     option  Lorg/graalvm/compiler/options/OptionValue<*>;
            0    7     1      value  Ljava/lang/Object;
            1    7     2    current  Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            5    6     3  overrides  Ljava/util/Map<Lorg/graalvm/compiler/options/OptionValue<*>;Ljava/lang/Object;>;
    Signature: (Lorg/graalvm/compiler/options/OptionValue<*>;Ljava/lang/Object;)Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
    MethodParameters:
        Name  Flags
      option  
      value   

  public static org.graalvm.compiler.options.OptionValue$OverrideScope override(java.util.Map<org.graalvm.compiler.options.OptionValue<?>, java.lang.Object>);
    descriptor: (Ljava/util/Map;)Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.util.Map overrides
         0: .line 84
            invokestatic org.graalvm.compiler.options.OptionValue.getOverrideScope:()Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            astore 1 /* current */
        start local 1 // org.graalvm.compiler.options.OptionValue$OverrideScope current
         1: .line 85
            aload 1 /* current */
            ifnonnull 6
            aload 0 /* overrides */
            invokeinterface java.util.Map.size:()I
            iconst_1
            if_icmpne 6
         2: .line 86
            aload 0 /* overrides */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* single */
        start local 2 // java.util.Map$Entry single
         3: .line 87
            aload 2 /* single */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.options.OptionValue
            astore 3 /* option */
        start local 3 // org.graalvm.compiler.options.OptionValue option
         4: .line 88
            aload 2 /* single */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            astore 4 /* overrideValue */
        start local 4 // java.lang.Object overrideValue
         5: .line 89
            new org.graalvm.compiler.options.OptionValue$SingleOverrideScope
            dup
            aload 3 /* option */
            aload 4 /* overrideValue */
            invokespecial org.graalvm.compiler.options.OptionValue$SingleOverrideScope.<init>:(Lorg/graalvm/compiler/options/OptionValue;Ljava/lang/Object;)V
            areturn
        end local 4 // java.lang.Object overrideValue
        end local 3 // org.graalvm.compiler.options.OptionValue option
        end local 2 // java.util.Map$Entry single
         6: .line 91
      StackMap locals: org.graalvm.compiler.options.OptionValue$OverrideScope
      StackMap stack:
            new org.graalvm.compiler.options.OptionValue$MultipleOverridesScope
            dup
            aload 1 /* current */
            aload 0 /* overrides */
            invokespecial org.graalvm.compiler.options.OptionValue$MultipleOverridesScope.<init>:(Lorg/graalvm/compiler/options/OptionValue$OverrideScope;Ljava/util/Map;)V
            areturn
        end local 1 // org.graalvm.compiler.options.OptionValue$OverrideScope current
        end local 0 // java.util.Map overrides
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0      overrides  Ljava/util/Map<Lorg/graalvm/compiler/options/OptionValue<*>;Ljava/lang/Object;>;
            1    7     1        current  Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            3    6     2         single  Ljava/util/Map$Entry<Lorg/graalvm/compiler/options/OptionValue<*>;Ljava/lang/Object;>;
            4    6     3         option  Lorg/graalvm/compiler/options/OptionValue<*>;
            5    6     4  overrideValue  Ljava/lang/Object;
    Signature: (Ljava/util/Map<Lorg/graalvm/compiler/options/OptionValue<*>;Ljava/lang/Object;>;)Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
    MethodParameters:
           Name  Flags
      overrides  

  public static org.graalvm.compiler.options.OptionValue$OverrideScope override(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.Object[] overrides
         0: .line 112
            invokestatic org.graalvm.compiler.options.OptionValue.getOverrideScope:()Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            astore 1 /* current */
        start local 1 // org.graalvm.compiler.options.OptionValue$OverrideScope current
         1: .line 113
            aload 1 /* current */
            ifnonnull 6
            aload 0 /* overrides */
            arraylength
            iconst_2
            if_icmpne 6
         2: .line 114
            aload 0 /* overrides */
            iconst_0
            aaload
            checkcast org.graalvm.compiler.options.OptionValue
            astore 2 /* option */
        start local 2 // org.graalvm.compiler.options.OptionValue option
         3: .line 115
            aload 0 /* overrides */
            iconst_1
            aaload
            astore 3 /* overrideValue */
        start local 3 // java.lang.Object overrideValue
         4: .line 116
            aload 3 /* overrideValue */
            aload 2 /* option */
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 117
            new org.graalvm.compiler.options.OptionValue$SingleOverrideScope
            dup
            aload 2 /* option */
            aload 3 /* overrideValue */
            invokespecial org.graalvm.compiler.options.OptionValue$SingleOverrideScope.<init>:(Lorg/graalvm/compiler/options/OptionValue;Ljava/lang/Object;)V
            areturn
        end local 3 // java.lang.Object overrideValue
        end local 2 // org.graalvm.compiler.options.OptionValue option
         6: .line 120
      StackMap locals: org.graalvm.compiler.options.OptionValue$OverrideScope
      StackMap stack:
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            astore 2 /* map */
        start local 2 // java.util.Map map
         7: .line 121
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: goto 16
         9: .line 122
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 0 /* overrides */
            iload 3 /* i */
            aaload
            checkcast org.graalvm.compiler.options.OptionValue
            astore 4 /* option */
        start local 4 // org.graalvm.compiler.options.OptionValue option
        10: .line 123
            aload 0 /* overrides */
            iload 3 /* i */
            iconst_1
            iadd
            aaload
            astore 5 /* overrideValue */
        start local 5 // java.lang.Object overrideValue
        11: .line 124
            aload 5 /* overrideValue */
            aload 4 /* option */
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 15
        12: .line 125
            aload 2 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 14
        13: .line 126
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* map */
        14: .line 128
      StackMap locals: org.graalvm.compiler.options.OptionValue java.lang.Object
      StackMap stack:
            aload 2 /* map */
            aload 4 /* option */
            aload 5 /* overrideValue */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.Object overrideValue
        end local 4 // org.graalvm.compiler.options.OptionValue option
        15: .line 121
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 2
      StackMap locals:
      StackMap stack:
        16: iload 3 /* i */
            aload 0 /* overrides */
            arraylength
            if_icmplt 9
        end local 3 // int i
        17: .line 131
            new org.graalvm.compiler.options.OptionValue$MultipleOverridesScope
            dup
            aload 1 /* current */
            aload 2 /* map */
            invokespecial org.graalvm.compiler.options.OptionValue$MultipleOverridesScope.<init>:(Lorg/graalvm/compiler/options/OptionValue$OverrideScope;Ljava/util/Map;)V
            areturn
        end local 2 // java.util.Map map
        end local 1 // org.graalvm.compiler.options.OptionValue$OverrideScope current
        end local 0 // java.lang.Object[] overrides
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0      overrides  [Ljava/lang/Object;
            1   18     1        current  Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            3    6     2         option  Lorg/graalvm/compiler/options/OptionValue<*>;
            4    6     3  overrideValue  Ljava/lang/Object;
            7   18     2            map  Ljava/util/Map<Lorg/graalvm/compiler/options/OptionValue<*>;Ljava/lang/Object;>;
            8   17     3              i  I
           10   15     4         option  Lorg/graalvm/compiler/options/OptionValue<*>;
           11   15     5  overrideValue  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      overrides  

  protected static org.graalvm.compiler.options.OptionValue$OverrideScope getOverrideScope();
    descriptor: ()Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 137
            getstatic org.graalvm.compiler.options.OptionValue.overrideScopeTL:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.options.OptionValue$OverrideScope
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected static void setOverrideScope(org.graalvm.compiler.options.OptionValue$OverrideScope);
    descriptor: (Lorg/graalvm/compiler/options/OptionValue$OverrideScope;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValue$OverrideScope overrideScope
         0: .line 141
            getstatic org.graalvm.compiler.options.OptionValue.overrideScopeTL:Ljava/lang/ThreadLocal;
            aload 0 /* overrideScope */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 142
            return
        end local 0 // org.graalvm.compiler.options.OptionValue$OverrideScope overrideScope
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0  overrideScope  Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
    MethodParameters:
               Name  Flags
      overrideScope  

  private static void addToHistogram(org.graalvm.compiler.options.OptionValue<?>);
    descriptor: (Lorg/graalvm/compiler/options/OptionValue;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValue option
         0: .line 166
            getstatic org.graalvm.compiler.options.OptionValue.ProfileOptionValue:Z
            ifeq 8
         1: .line 167
            ldc Lorg/graalvm/compiler/options/OptionValue;
            dup
            astore 1
            monitorenter
         2: .line 168
            aload 0 /* option */
            getstatic org.graalvm.compiler.options.OptionValue.head:Lorg/graalvm/compiler/options/OptionValue;
            putfield org.graalvm.compiler.options.OptionValue.next:Lorg/graalvm/compiler/options/OptionValue;
         3: .line 169
            aload 0 /* option */
            putstatic org.graalvm.compiler.options.OptionValue.head:Lorg/graalvm/compiler/options/OptionValue;
         4: .line 167
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: org.graalvm.compiler.options.OptionValue java.lang.Class
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 172
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.options.OptionValue option
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  option  Lorg/graalvm/compiler/options/OptionValue<*>;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
    Signature: (Lorg/graalvm/compiler/options/OptionValue<*>;)V
    MethodParameters:
        Name  Flags
      option  

  public void <init>();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.options.OptionValue this
        start local 1 // java.lang.Object value
         0: .line 175
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 176
            aload 0 /* this */
            aload 1 /* value */
            putfield org.graalvm.compiler.options.OptionValue.defaultValue:Ljava/lang/Object;
         2: .line 177
            aload 0 /* this */
            getstatic org.graalvm.compiler.options.OptionValue.DEFAULT:Ljava/lang/Object;
            putfield org.graalvm.compiler.options.OptionValue.value:Ljava/lang/Object;
         3: .line 178
            aload 0 /* this */
            invokestatic org.graalvm.compiler.options.OptionValue.addToHistogram:(Lorg/graalvm/compiler/options/OptionValue;)V
         4: .line 179
            return
        end local 1 // java.lang.Object value
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/graalvm/compiler/options/OptionValue<TT;>;
            0    5     1  value  TT;
    Signature: (TT;)V
    MethodParameters:
       Name  Flags
      value  

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValue this
         0: .line 189
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 190
            aload 0 /* this */
            getstatic org.graalvm.compiler.options.OptionValue.UNINITIALIZED:Ljava/lang/Object;
            putfield org.graalvm.compiler.options.OptionValue.defaultValue:Ljava/lang/Object;
         2: .line 191
            aload 0 /* this */
            getstatic org.graalvm.compiler.options.OptionValue.DEFAULT:Ljava/lang/Object;
            putfield org.graalvm.compiler.options.OptionValue.value:Ljava/lang/Object;
         3: .line 192
            aload 0 /* this */
            invokestatic org.graalvm.compiler.options.OptionValue.addToHistogram:(Lorg/graalvm/compiler/options/OptionValue;)V
         4: .line 193
            return
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/options/OptionValue<TT;>;

  protected T defaultValue();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValue this
         0: .line 199
            new java.lang.InternalError
            dup
            ldc "Option without a default value value must override defaultValue()"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/options/OptionValue<TT;>;
    Signature: ()TT;

  public void setDescriptor(org.graalvm.compiler.options.OptionDescriptor);
    descriptor: (Lorg/graalvm/compiler/options/OptionDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.options.OptionValue this
        start local 1 // org.graalvm.compiler.options.OptionDescriptor descriptor
         0: .line 206
            getstatic org.graalvm.compiler.options.OptionValue.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.descriptor:Lorg/graalvm/compiler/options/OptionDescriptor;
            ifnull 1
            new java.lang.AssertionError
            dup
            ldc "Overwriting existing descriptor"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* descriptor */
            putfield org.graalvm.compiler.options.OptionValue.descriptor:Lorg/graalvm/compiler/options/OptionDescriptor;
         2: .line 208
            return
        end local 1 // org.graalvm.compiler.options.OptionDescriptor descriptor
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/graalvm/compiler/options/OptionValue<TT;>;
            0    3     1  descriptor  Lorg/graalvm/compiler/options/OptionDescriptor;
    MethodParameters:
            Name  Flags
      descriptor  

  public org.graalvm.compiler.options.OptionDescriptor getDescriptor();
    descriptor: ()Lorg/graalvm/compiler/options/OptionDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValue this
         0: .line 215
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.descriptor:Lorg/graalvm/compiler/options/OptionDescriptor;
            areturn
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/options/OptionValue<TT;>;

  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.compiler.options.OptionValue this
         0: .line 239
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.descriptor:Lorg/graalvm/compiler/options/OptionDescriptor;
            ifnonnull 2
         1: .line 242
            invokestatic org.graalvm.compiler.options.OptionValue$Lazy.init:()V
         2: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.descriptor:Lorg/graalvm/compiler/options/OptionDescriptor;
            ifnonnull 3
            aload 0 /* this */
            invokespecial java.lang.Object.toString:()Ljava/lang/String;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.descriptor:Lorg/graalvm/compiler/options/OptionDescriptor;
            invokevirtual org.graalvm.compiler.options.OptionDescriptor.getName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         4: areturn
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/options/OptionValue<TT;>;

  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.compiler.options.OptionValue this
         0: .line 249
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.options.OptionValue.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/options/OptionValue<TT;>;

  public T getDefaultValue();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValue this
         0: .line 258
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.defaultValue:Ljava/lang/Object;
            getstatic org.graalvm.compiler.options.OptionValue.UNINITIALIZED:Ljava/lang/Object;
            if_acmpne 2
         1: .line 259
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.options.OptionValue.defaultValue:()Ljava/lang/Object;
            putfield org.graalvm.compiler.options.OptionValue.defaultValue:Ljava/lang/Object;
         2: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.defaultValue:Ljava/lang/Object;
            areturn
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/options/OptionValue<TT;>;
    Signature: ()TT;

  public boolean hasBeenSet();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValue this
         0: .line 269
            aload 0 /* this */
            instanceof org.graalvm.compiler.options.StableOptionValue
            ifne 7
         1: .line 270
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
            pop
         2: .line 272
            invokestatic org.graalvm.compiler.options.OptionValue.getOverrideScope:()Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            astore 1 /* overrideScope */
        start local 1 // org.graalvm.compiler.options.OptionValue$OverrideScope overrideScope
         3: .line 273
            aload 1 /* overrideScope */
            ifnull 7
         4: .line 274
            aload 1 /* overrideScope */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.options.OptionValue$OverrideScope.getOverride:(Lorg/graalvm/compiler/options/OptionValue;)Ljava/lang/Object;
            astore 2 /* override */
        start local 2 // java.lang.Object override
         5: .line 275
            aload 2 /* override */
            ifnull 7
         6: .line 276
            iconst_1
            ireturn
        end local 2 // java.lang.Object override
        end local 1 // org.graalvm.compiler.options.OptionValue$OverrideScope overrideScope
         7: .line 280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.value:Ljava/lang/Object;
            getstatic org.graalvm.compiler.options.OptionValue.DEFAULT:Ljava/lang/Object;
            if_acmpeq 8
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lorg/graalvm/compiler/options/OptionValue<TT;>;
            3    7     1  overrideScope  Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            5    7     2       override  TT;

  public T getValue();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValue this
         0: .line 287
            getstatic org.graalvm.compiler.options.OptionValue.ProfileOptionValue:Z
            ifeq 2
         1: .line 288
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.options.OptionValue.reads:J
            lconst_1
            ladd
            putfield org.graalvm.compiler.options.OptionValue.reads:J
         2: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            instanceof org.graalvm.compiler.options.StableOptionValue
            ifne 8
         3: .line 291
            invokestatic org.graalvm.compiler.options.OptionValue.getOverrideScope:()Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            astore 1 /* overrideScope */
        start local 1 // org.graalvm.compiler.options.OptionValue$OverrideScope overrideScope
         4: .line 292
            aload 1 /* overrideScope */
            ifnull 8
         5: .line 293
            aload 1 /* overrideScope */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.options.OptionValue$OverrideScope.getOverride:(Lorg/graalvm/compiler/options/OptionValue;)Ljava/lang/Object;
            astore 2 /* override */
        start local 2 // java.lang.Object override
         6: .line 294
            aload 2 /* override */
            ifnull 8
         7: .line 295
            aload 2 /* override */
            areturn
        end local 2 // java.lang.Object override
        end local 1 // org.graalvm.compiler.options.OptionValue$OverrideScope overrideScope
         8: .line 299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.value:Ljava/lang/Object;
            getstatic org.graalvm.compiler.options.OptionValue.DEFAULT:Ljava/lang/Object;
            if_acmpeq 10
         9: .line 300
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.value:Ljava/lang/Object;
            areturn
        10: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.options.OptionValue.getDefaultValue:()Ljava/lang/Object;
            areturn
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/graalvm/compiler/options/OptionValue<TT;>;
            4    8     1  overrideScope  Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            6    8     2       override  TT;
    Signature: ()TT;

  public java.util.Collection<T> getValues(java.util.Collection<T>);
    descriptor: (Ljava/util/Collection;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.options.OptionValue this
        start local 1 // java.util.Collection c
         0: .line 315
            aload 1 /* c */
            ifnonnull 1
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* c */
      StackMap locals:
      StackMap stack: java.util.Collection
         2: astore 2 /* values */
        start local 2 // java.util.Collection values
         3: .line 316
            aload 0 /* this */
            instanceof org.graalvm.compiler.options.StableOptionValue
            ifne 7
         4: .line 317
            invokestatic org.graalvm.compiler.options.OptionValue.getOverrideScope:()Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
            astore 3 /* overrideScope */
        start local 3 // org.graalvm.compiler.options.OptionValue$OverrideScope overrideScope
         5: .line 318
            aload 3 /* overrideScope */
            ifnull 7
         6: .line 319
            aload 3 /* overrideScope */
            aload 0 /* this */
            aload 2 /* values */
            invokevirtual org.graalvm.compiler.options.OptionValue$OverrideScope.getOverrides:(Lorg/graalvm/compiler/options/OptionValue;Ljava/util/Collection;)V
        end local 3 // org.graalvm.compiler.options.OptionValue$OverrideScope overrideScope
         7: .line 322
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.value:Ljava/lang/Object;
            getstatic org.graalvm.compiler.options.OptionValue.DEFAULT:Ljava/lang/Object;
            if_acmpeq 10
         8: .line 323
            aload 2 /* values */
            aload 0 /* this */
            getfield org.graalvm.compiler.options.OptionValue.value:Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         9: .line 324
            goto 11
        10: .line 325
      StackMap locals:
      StackMap stack:
            aload 2 /* values */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.options.OptionValue.getDefaultValue:()Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        11: .line 327
      StackMap locals:
      StackMap stack:
            aload 2 /* values */
            areturn
        end local 2 // java.util.Collection values
        end local 1 // java.util.Collection c
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lorg/graalvm/compiler/options/OptionValue<TT;>;
            0   12     1              c  Ljava/util/Collection<TT;>;
            3   12     2         values  Ljava/util/Collection<TT;>;
            5    7     3  overrideScope  Lorg/graalvm/compiler/options/OptionValue$OverrideScope;
    Signature: (Ljava/util/Collection<TT;>;)Ljava/util/Collection<TT;>;
    MethodParameters:
      Name  Flags
      c     

  public void setValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.options.OptionValue this
        start local 1 // java.lang.Object v
         0: .line 335
            aload 0 /* this */
            aload 1 /* v */
            putfield org.graalvm.compiler.options.OptionValue.value:Ljava/lang/Object;
         1: .line 336
            return
        end local 1 // java.lang.Object v
        end local 0 // org.graalvm.compiler.options.OptionValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/options/OptionValue<TT;>;
            0    2     1     v  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      v     
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "OptionValue.java"
NestMembers:
  org.graalvm.compiler.options.OptionValue$1  org.graalvm.compiler.options.OptionValue$1$1  org.graalvm.compiler.options.OptionValue$Lazy  org.graalvm.compiler.options.OptionValue$MultipleOverridesScope  org.graalvm.compiler.options.OptionValue$OverrideScope  org.graalvm.compiler.options.OptionValue$SingleOverrideScope
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  org.graalvm.compiler.options.OptionValue$1
  Lazy = org.graalvm.compiler.options.OptionValue$Lazy of org.graalvm.compiler.options.OptionValue
  MultipleOverridesScope = org.graalvm.compiler.options.OptionValue$MultipleOverridesScope of org.graalvm.compiler.options.OptionValue
  public abstract OverrideScope = org.graalvm.compiler.options.OptionValue$OverrideScope of org.graalvm.compiler.options.OptionValue
  SingleOverrideScope = org.graalvm.compiler.options.OptionValue$SingleOverrideScope of org.graalvm.compiler.options.OptionValue