public class com.oracle.truffle.dsl.processor.OptionProcessor extends javax.annotation.processing.AbstractProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.dsl.processor.OptionProcessor
  super_class: javax.annotation.processing.AbstractProcessor
{
  private final java.util.Set<javax.lang.model.element.Element> processed;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljavax/lang/model/element/Element;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 92
            ldc Lcom/oracle/truffle/dsl/processor/OptionProcessor;
            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 com.oracle.truffle.dsl.processor.OptionProcessor.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
         0: .line 92
            aload 0 /* this */
            invokespecial javax.annotation.processing.AbstractProcessor.<init>:()V
         1: .line 99
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.truffle.dsl.processor.OptionProcessor.processed:Ljava/util/Set;
         2: .line 92
            return
        end local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/dsl/processor/OptionProcessor;

  public javax.lang.model.SourceVersion getSupportedSourceVersion();
    descriptor: ()Ljavax/lang/model/SourceVersion;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
         0: .line 96
            invokestatic javax.lang.model.SourceVersion.latest:()Ljavax/lang/model/SourceVersion;
            areturn
        end local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/dsl/processor/OptionProcessor;

  public boolean process(java.util.Set<? extends javax.lang.model.element.TypeElement>, javax.annotation.processing.RoundEnvironment);
    descriptor: (Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=14, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
        start local 1 // java.util.Set annotations
        start local 2 // javax.annotation.processing.RoundEnvironment roundEnv
         0: .line 103
            aload 2 /* roundEnv */
            invokeinterface javax.annotation.processing.RoundEnvironment.processingOver:()Z
            ifeq 2
         1: .line 104
            iconst_1
            ireturn
         2: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.enter:(Ljavax/annotation/processing/ProcessingEnvironment;)Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.dsl.processor.ProcessorContext context
         3: .line 108
            aload 3 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            astore 4 /* types */
        start local 4 // com.oracle.truffle.dsl.processor.TruffleTypes types
         4: .line 109
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* map */
        start local 5 // java.util.Map map
         5: .line 110
            aload 2 /* roundEnv */
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Option:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.castTypeElement:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.annotation.processing.RoundEnvironment.getElementsAnnotatedWith:(Ljavax/lang/model/element/TypeElement;)Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 19
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.Element
            astore 6 /* element */
        start local 6 // javax.lang.model.element.Element element
         7: .line 111
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor.processed:Ljava/util/Set;
            aload 6 /* element */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 19
         8: .line 112
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor.processed:Ljava/util/Set;
            aload 6 /* element */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 113
            aload 6 /* element */
            invokeinterface javax.lang.model.element.Element.getEnclosingElement:()Ljavax/lang/model/element/Element;
            astore 8 /* topElement */
        start local 8 // javax.lang.model.element.Element topElement
        10: .line 115
            aload 5 /* map */
            aload 8 /* topElement */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo
            astore 9 /* options */
        start local 9 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo options
        11: .line 116
            aload 9 /* options */
            ifnonnull 14
        12: .line 117
            new com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo
            dup
            aload 8 /* topElement */
            invokespecial com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.<init>:(Ljavax/lang/model/element/Element;)V
            astore 9 /* options */
        13: .line 118
            aload 5 /* map */
            aload 8 /* topElement */
            aload 9 /* options */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 120
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map javax.lang.model.element.Element java.util.Iterator javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo
      StackMap stack:
            aload 6 /* element */
            invokeinterface javax.lang.model.element.Element.getAnnotationMirrors:()Ljava/util/List;
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Option:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljava/util/List;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
            astore 10 /* mirror */
        start local 10 // javax.lang.model.element.AnnotationMirror mirror
        15: .line 122
            aload 0 /* this */
            aload 6 /* element */
            aload 10 /* mirror */
            aload 9 /* options */
            invokevirtual com.oracle.truffle.dsl.processor.OptionProcessor.processElement:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;)Z
            pop
        16: .line 123
            goto 19
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map javax.lang.model.element.Element java.util.Iterator javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo javax.lang.model.element.AnnotationMirror
      StackMap stack: java.lang.Throwable
        17: astore 11 /* t */
        start local 11 // java.lang.Throwable t
        18: .line 124
            aload 0 /* this */
            aload 11 /* t */
            aload 8 /* topElement */
            invokevirtual com.oracle.truffle.dsl.processor.OptionProcessor.handleThrowable:(Ljava/lang/Throwable;Ljavax/lang/model/element/Element;)V
        end local 11 // java.lang.Throwable t
        end local 10 // javax.lang.model.element.AnnotationMirror mirror
        end local 9 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo options
        end local 8 // javax.lang.model.element.Element topElement
        end local 6 // javax.lang.model.element.Element element
        19: .line 110
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        20: .line 129
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 6 /* seenKeys */
        start local 6 // java.util.Map seenKeys
        21: .line 130
            aload 5 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 35
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        22: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo
            astore 7 /* infos */
        start local 7 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo infos
        23: .line 131
            aload 7 /* infos */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.options:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 34
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map java.util.Map com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo java.util.Iterator top java.util.Iterator
      StackMap stack:
        24: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo
            astore 9 /* info */
        start local 9 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        25: .line 132
            aload 6 /* seenKeys */
            aload 9 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.name:Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 33
        26: .line 133
            aload 6 /* seenKeys */
            aload 9 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.name:Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo
            astore 11 /* otherInfo */
        start local 11 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo otherInfo
        27: .line 134
            ldc "Two options with duplicated resolved descriptor name '%s' found."
            astore 12 /* message */
        start local 12 // java.lang.String message
        28: .line 135
            aload 9 /* info */
            iconst_0
            putfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.valid:Z
        29: .line 136
            aload 11 /* otherInfo */
            iconst_0
            putfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.valid:Z
        30: .line 137
            aload 9 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.field:Ljavax/lang/model/element/VariableElement;
            aload 9 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.annotation:Ljavax/lang/model/element/AnnotationMirror;
            aload 12 /* message */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.name:Ljava/lang/String;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        31: .line 138
            aload 11 /* otherInfo */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.field:Ljavax/lang/model/element/VariableElement;
            aload 11 /* otherInfo */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.annotation:Ljavax/lang/model/element/AnnotationMirror;
            aload 12 /* message */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 11 /* otherInfo */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.name:Ljava/lang/String;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        end local 12 // java.lang.String message
        end local 11 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo otherInfo
        32: .line 139
            goto 34
        33: .line 140
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map java.util.Map com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo java.util.Iterator com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo java.util.Iterator
      StackMap stack:
            aload 6 /* seenKeys */
            aload 9 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.name:Ljava/lang/String;
            aload 9 /* info */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        34: .line 131
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map java.util.Map com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        end local 7 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo infos
        35: .line 130
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        36: .line 145
            aload 5 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 47
      StackMap locals:
      StackMap stack:
        37: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo
            astore 7 /* infos */
        start local 7 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo infos
        38: .line 146
            aload 7 /* infos */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.options:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 9 /* listIterator */
        start local 9 // java.util.ListIterator listIterator
        39: .line 147
            goto 45
        40: .line 148
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map java.util.Map com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo java.util.Iterator java.util.ListIterator
      StackMap stack:
            aload 9 /* listIterator */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo
            astore 10 /* info */
        start local 10 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        41: .line 149
            aload 10 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.valid:Z
            ifeq 44
        42: .line 150
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            aload 10 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.field:Ljavax/lang/model/element/VariableElement;
            invokestatic com.oracle.truffle.dsl.processor.ExpectError.assertNoErrorExpected:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/Element;)V
        43: .line 151
            goto 45
        44: .line 152
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo
      StackMap stack:
            aload 9 /* listIterator */
            invokeinterface java.util.ListIterator.remove:()V
        end local 10 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        45: .line 147
      StackMap locals:
      StackMap stack:
            aload 9 /* listIterator */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 40
        46: .line 155
            aload 7 /* infos */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.options:Ljava/util/List;
            new com.oracle.truffle.dsl.processor.OptionProcessor$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.dsl.processor.OptionProcessor$1.<init>:(Lcom/oracle/truffle/dsl/processor/OptionProcessor;)V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        end local 9 // java.util.ListIterator listIterator
        end local 7 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo infos
        47: .line 145
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        48: .line 162
            aload 5 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 54
      StackMap locals:
      StackMap stack:
        49: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo
            astore 7 /* info */
        start local 7 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo info
        50: .line 164
            aload 7 /* info */
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.generateOptionDescriptor:(Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;)V
        51: .line 165
            goto 54
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map java.util.Map com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo java.util.Iterator
      StackMap stack: java.lang.Throwable
        52: astore 9 /* t */
        start local 9 // java.lang.Throwable t
        53: .line 166
            aload 0 /* this */
            aload 9 /* t */
            aload 7 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.type:Ljavax/lang/model/element/Element;
            invokevirtual com.oracle.truffle.dsl.processor.OptionProcessor.handleThrowable:(Ljava/lang/Throwable;Ljavax/lang/model/element/Element;)V
        end local 9 // java.lang.Throwable t
        end local 7 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo info
        54: .line 162
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 49
        end local 6 // java.util.Map seenKeys
        end local 5 // java.util.Map map
        end local 4 // com.oracle.truffle.dsl.processor.TruffleTypes types
        55: .line 169
            goto 59
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext
      StackMap stack: java.lang.Throwable
        56: astore 13
        57: .line 170
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.leave:()V
        58: .line 171
            aload 13
            athrow
        59: .line 170
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.leave:()V
        60: .line 173
            iconst_1
            ireturn
        end local 3 // com.oracle.truffle.dsl.processor.ProcessorContext context
        end local 2 // javax.annotation.processing.RoundEnvironment roundEnv
        end local 1 // java.util.Set annotations
        end local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   61     0          this  Lcom/oracle/truffle/dsl/processor/OptionProcessor;
            0   61     1   annotations  Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;
            0   61     2      roundEnv  Ljavax/annotation/processing/RoundEnvironment;
            3   61     3       context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            4   55     4         types  Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            5   55     5           map  Ljava/util/Map<Ljavax/lang/model/element/Element;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;>;
            7   19     6       element  Ljavax/lang/model/element/Element;
           10   19     8    topElement  Ljavax/lang/model/element/Element;
           11   19     9       options  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;
           15   19    10        mirror  Ljavax/lang/model/element/AnnotationMirror;
           18   19    11             t  Ljava/lang/Throwable;
           21   55     6      seenKeys  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;>;
           23   35     7         infos  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;
           25   34     9          info  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;
           27   32    11     otherInfo  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;
           28   32    12       message  Ljava/lang/String;
           38   47     7         infos  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;
           39   47     9  listIterator  Ljava/util/ListIterator<Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;>;
           41   45    10          info  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;
           50   54     7          info  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;
           53   54     9             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    16      17  Class java.lang.Throwable
          50    51      52  Class java.lang.Throwable
           3    56      56  any
    Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
    MethodParameters:
             Name  Flags
      annotations  
      roundEnv     

  private boolean processElement(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror, com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=28, args_size=4
        start local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
        start local 1 // javax.lang.model.element.Element element
        start local 2 // javax.lang.model.element.AnnotationMirror elementAnnotation
        start local 3 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo info
         0: .line 177
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            astore 4 /* context */
        start local 4 // com.oracle.truffle.dsl.processor.ProcessorContext context
         1: .line 178
            aload 4 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            astore 5 /* types */
        start local 5 // com.oracle.truffle.dsl.processor.TruffleTypes types
         2: .line 180
            aload 1 /* element */
            invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 181
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Option field must be static"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 182
            iconst_0
            ireturn
         5: .line 184
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes
      StackMap stack:
            aload 1 /* element */
            invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.PRIVATE:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 185
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Option field cannot be private"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 186
            iconst_0
            ireturn
         8: .line 189
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* groupPrefixStrings */
        start local 6 // java.util.List groupPrefixStrings
         9: .line 191
            aload 3 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.type:Ljavax/lang/model/element/Element;
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Option_Group:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
            astore 7 /* prefix */
        start local 7 // javax.lang.model.element.AnnotationMirror prefix
        10: .line 193
            aload 7 /* prefix */
            ifnull 13
        11: .line 194
            ldc Ljava/lang/String;
            aload 7 /* prefix */
            ldc "value"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
            astore 6 /* groupPrefixStrings */
        12: .line 195
            goto 32
        13: .line 196
      StackMap locals: java.util.List javax.lang.model.element.AnnotationMirror
      StackMap stack:
            aload 4 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage:Ljavax/lang/model/type/DeclaredType;
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            astore 8 /* erasedTruffleType */
        start local 8 // javax.lang.model.type.TypeMirror erasedTruffleType
        14: .line 197
            aload 4 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            aload 3 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.type:Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 8 /* erasedTruffleType */
            invokeinterface javax.lang.model.util.Types.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 23
        15: .line 198
            aload 3 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.type:Ljavax/lang/model/element/Element;
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage_Registration:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
            astore 9 /* registration */
        start local 9 // javax.lang.model.element.AnnotationMirror registration
        16: .line 199
            aload 9 /* registration */
            ifnull 32
        17: .line 200
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc Ljava/lang/String;
            aload 9 /* registration */
            ldc "id"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 6 /* groupPrefixStrings */
        18: .line 201
            aload 6 /* groupPrefixStrings */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 32
        19: .line 202
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "%s must specify an id such that Truffle options can infer their prefix."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        20: .line 203
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage_Registration:Ljavax/lang/model/type/DeclaredType;
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aastore
        21: .line 202
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        22: .line 204
            iconst_0
            ireturn
        end local 9 // javax.lang.model.element.AnnotationMirror registration
        23: .line 208
      StackMap locals: javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 4 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            aload 3 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.type:Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleInstrument:Ljavax/lang/model/type/DeclaredType;
            invokeinterface javax.lang.model.util.Types.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 32
        24: .line 209
            aload 3 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.type:Ljavax/lang/model/element/Element;
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleInstrument_Registration:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
            astore 9 /* registration */
        start local 9 // javax.lang.model.element.AnnotationMirror registration
        25: .line 210
            aload 9 /* registration */
            ifnull 32
        26: .line 211
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc Ljava/lang/String;
            aload 9 /* registration */
            ldc "id"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 6 /* groupPrefixStrings */
        27: .line 212
            aload 6 /* groupPrefixStrings */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 32
        28: .line 213
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "%s must specify an id such that Truffle options can infer their prefix."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        29: .line 214
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleInstrument_Registration:Ljavax/lang/model/type/DeclaredType;
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aastore
        30: .line 213
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        31: .line 215
            iconst_0
            ireturn
        end local 9 // javax.lang.model.element.AnnotationMirror registration
        end local 8 // javax.lang.model.type.TypeMirror erasedTruffleType
        32: .line 221
      StackMap locals:
      StackMap stack:
            aload 6 /* groupPrefixStrings */
            ifnull 33
            aload 6 /* groupPrefixStrings */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 34
        33: .line 222
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc ""
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 6 /* groupPrefixStrings */
        34: .line 225
      StackMap locals:
      StackMap stack:
            aload 1 /* element */
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Option:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
            astore 8 /* annotation */
        start local 8 // javax.lang.model.element.AnnotationMirror annotation
        35: .line 226
            getstatic com.oracle.truffle.dsl.processor.OptionProcessor.$assertionsDisabled:Z
            ifne 36
            aload 8 /* annotation */
            ifnonnull 36
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        36: .line 227
      StackMap locals: javax.lang.model.element.AnnotationMirror
      StackMap stack:
            getstatic com.oracle.truffle.dsl.processor.OptionProcessor.$assertionsDisabled:Z
            ifne 37
            aload 1 /* element */
            instanceof javax.lang.model.element.VariableElement
            ifne 37
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        37: .line 228
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.dsl.processor.OptionProcessor.$assertionsDisabled:Z
            ifne 38
            aload 1 /* element */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.FIELD:Ljavax/lang/model/element/ElementKind;
            if_acmpeq 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        38: .line 229
      StackMap locals:
      StackMap stack:
            aload 1 /* element */
            checkcast javax.lang.model.element.VariableElement
            astore 9 /* field */
        start local 9 // javax.lang.model.element.VariableElement field
        39: .line 230
            aload 9 /* field */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 10 /* fieldName */
        start local 10 // java.lang.String fieldName
        40: .line 232
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            astore 11 /* typeUtils */
        start local 11 // javax.lang.model.util.Types typeUtils
        41: .line 234
            aload 9 /* field */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 12 /* fieldType */
        start local 12 // javax.lang.model.type.TypeMirror fieldType
        42: .line 235
            aload 12 /* fieldType */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.DECLARED:Ljavax/lang/model/type/TypeKind;
            if_acmpeq 45
        43: .line 236
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            new java.lang.StringBuilder
            dup
            ldc "Option field must be of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.OptionKey:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getQualifiedName:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        44: .line 237
            iconst_0
            ireturn
        45: .line 239
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.List javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationMirror javax.lang.model.element.VariableElement java.lang.String javax.lang.model.util.Types javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 11 /* typeUtils */
            aload 12 /* fieldType */
            aload 11 /* typeUtils */
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.OptionKey:Ljavax/lang/model/type/DeclaredType;
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.isSubtype:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 48
        46: .line 240
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Option field type %s is not a subclass of %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 12 /* fieldType */
            aastore
            dup
            iconst_1
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.OptionKey:Ljavax/lang/model/type/DeclaredType;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        47: .line 241
            iconst_0
            ireturn
        48: .line 244
      StackMap locals:
      StackMap stack:
            aload 9 /* field */
            invokeinterface javax.lang.model.element.VariableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 51
        49: .line 245
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Option field must be static"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        50: .line 246
            iconst_0
            ireturn
        51: .line 248
      StackMap locals:
      StackMap stack:
            aload 9 /* field */
            invokeinterface javax.lang.model.element.VariableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.PRIVATE:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 54
        52: .line 249
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Option field cannot be private"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        53: .line 250
            iconst_0
            ireturn
        54: .line 253
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* optionMap */
        start local 13 // boolean optionMap
        55: .line 254
            aload 5 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.OptionMap:Ljavax/lang/model/type/DeclaredType;
            astore 14 /* optionMapType */
        start local 14 // javax.lang.model.type.TypeMirror optionMapType
        56: .line 255
            aload 12 /* fieldType */
            checkcast javax.lang.model.type.DeclaredType
            invokeinterface javax.lang.model.type.DeclaredType.getTypeArguments:()Ljava/util/List;
            astore 15 /* typeArguments */
        start local 15 // java.util.List typeArguments
        57: .line 256
            aload 15 /* typeArguments */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 59
        58: .line 257
            aload 11 /* typeUtils */
            aload 15 /* typeArguments */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            aload 11 /* typeUtils */
            aload 14 /* optionMapType */
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.isSubtype:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            istore 13 /* optionMap */
        59: .line 260
      StackMap locals: int javax.lang.model.type.TypeMirror java.util.List
      StackMap stack:
            ldc Ljava/lang/String;
            aload 8 /* annotation */
            ldc "help"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 16 /* help */
        start local 16 // java.lang.String help
        60: .line 261
            aload 16 /* help */
            invokevirtual java.lang.String.length:()I
            ifeq 65
        61: .line 262
            aload 16 /* help */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 17 /* firstChar */
        start local 17 // char firstChar
        62: .line 263
            iload 17 /* firstChar */
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifne 65
        63: .line 264
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Option help text must start with upper case letter"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        64: .line 265
            iconst_0
            ireturn
        end local 17 // char firstChar
        65: .line 269
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* elementAnnotation */
            ldc "name"
            iconst_0
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Z)Ljavax/lang/model/element/AnnotationValue;
            astore 17 /* value */
        start local 17 // javax.lang.model.element.AnnotationValue value
        66: .line 271
            aload 17 /* value */
            ifnonnull 69
        67: .line 272
            aload 10 /* fieldName */
            astore 18 /* optionName */
        start local 18 // java.lang.String optionName
        68: .line 273
            goto 70
        end local 18 // java.lang.String optionName
        69: .line 274
      StackMap locals: javax.lang.model.element.AnnotationValue
      StackMap stack:
            ldc Ljava/lang/String;
            aload 8 /* annotation */
            ldc "name"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 18 /* optionName */
        start local 18 // java.lang.String optionName
        70: .line 279
      StackMap locals: java.lang.String
      StackMap stack:
            iload 13 /* optionMap */
            ifeq 73
            aload 18 /* optionName */
            ldc "."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 73
        71: .line 280
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Option (maps) cannot contain a '.' in the name"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        72: .line 281
            iconst_0
            ireturn
        73: .line 284
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Boolean;
            aload 8 /* annotation */
            ldc "deprecated"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 19 /* deprecated */
        start local 19 // boolean deprecated
        74: .line 286
            ldc Ljavax/lang/model/element/VariableElement;
            aload 8 /* annotation */
            ldc "category"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 20 /* categoryElement */
        start local 20 // javax.lang.model.element.VariableElement categoryElement
        75: .line 287
            aload 20 /* categoryElement */
            ifnull 76
            aload 20 /* categoryElement */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            goto 77
      StackMap locals: int javax.lang.model.element.VariableElement
      StackMap stack:
        76: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        77: astore 21 /* category */
        start local 21 // java.lang.String category
        78: .line 288
            aload 21 /* category */
            ifnonnull 80
        79: .line 289
            ldc "INTERNAL"
            astore 21 /* category */
        80: .line 292
      StackMap locals: java.lang.String
      StackMap stack:
            ldc Ljavax/lang/model/element/VariableElement;
            aload 8 /* annotation */
            ldc "stability"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 22 /* stabilityElement */
        start local 22 // javax.lang.model.element.VariableElement stabilityElement
        81: .line 293
            aload 22 /* stabilityElement */
            ifnull 82
            aload 22 /* stabilityElement */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            goto 83
      StackMap locals: javax.lang.model.element.VariableElement
      StackMap stack:
        82: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        83: astore 23 /* stability */
        start local 23 // java.lang.String stability
        84: .line 295
            ldc Ljava/lang/String;
            aload 8 /* annotation */
            ldc "deprecationMessage"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 24 /* deprecationMessage */
        start local 24 // java.lang.String deprecationMessage
        85: .line 296
            aload 24 /* deprecationMessage */
            invokevirtual java.lang.String.length:()I
            ifeq 93
        86: .line 297
            iload 19 /* deprecated */
            ifne 89
        87: .line 298
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Deprecation message can be specified only for deprecated options."
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        88: .line 299
            iconst_0
            ireturn
        89: .line 301
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 24 /* deprecationMessage */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 25 /* firstChar */
        start local 25 // char firstChar
        90: .line 302
            iload 25 /* firstChar */
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifne 93
        91: .line 303
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Option deprecation message must start with upper case letter."
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        92: .line 304
            iconst_0
            ireturn
        end local 25 // char firstChar
        93: .line 308
      StackMap locals:
      StackMap stack:
            aload 6 /* groupPrefixStrings */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 26
            goto 106
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.List javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationMirror javax.lang.model.element.VariableElement java.lang.String javax.lang.model.util.Types javax.lang.model.type.TypeMirror int javax.lang.model.type.TypeMirror java.util.List java.lang.String javax.lang.model.element.AnnotationValue java.lang.String int javax.lang.model.element.VariableElement java.lang.String javax.lang.model.element.VariableElement java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
        94: aload 26
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 25 /* group */
        start local 25 // java.lang.String group
        95: .line 310
            aload 25 /* group */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 98
            aload 18 /* optionName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 98
        96: .line 311
            aload 1 /* element */
            aload 2 /* elementAnnotation */
            ldc "Both group and option name cannot be empty"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.error:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
        97: .line 312
            goto 106
        98: .line 313
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.List javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationMirror javax.lang.model.element.VariableElement java.lang.String javax.lang.model.util.Types javax.lang.model.type.TypeMirror int javax.lang.model.type.TypeMirror java.util.List java.lang.String javax.lang.model.element.AnnotationValue java.lang.String int javax.lang.model.element.VariableElement java.lang.String javax.lang.model.element.VariableElement java.lang.String java.lang.String java.lang.String java.util.Iterator
      StackMap stack:
            aload 18 /* optionName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 101
        99: .line 314
            aload 25 /* group */
            astore 27 /* name */
        start local 27 // java.lang.String name
       100: .line 315
            goto 105
        end local 27 // java.lang.String name
       101: .line 316
      StackMap locals:
      StackMap stack:
            aload 25 /* group */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 104
       102: .line 317
            aload 18 /* optionName */
            astore 27 /* name */
        start local 27 // java.lang.String name
       103: .line 318
            goto 105
        end local 27 // java.lang.String name
       104: .line 319
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 25 /* group */
            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 18 /* optionName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 27 /* name */
        start local 27 // java.lang.String name
       105: .line 322
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.options:Ljava/util/List;
            new com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo
            dup
            aload 27 /* name */
            aload 16 /* help */
            aload 9 /* field */
            aload 2 /* elementAnnotation */
            iload 19 /* deprecated */
            aload 21 /* category */
            aload 23 /* stability */
            iload 13 /* optionMap */
            aload 24 /* deprecationMessage */
            invokespecial com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.<init>:(Ljava/lang/String;Ljava/lang/String;Ljavax/lang/model/element/VariableElement;Ljavax/lang/model/element/AnnotationMirror;ZLjava/lang/String;Ljava/lang/String;ZLjava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 27 // java.lang.String name
        end local 25 // java.lang.String group
       106: .line 308
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes java.util.List javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationMirror javax.lang.model.element.VariableElement java.lang.String javax.lang.model.util.Types javax.lang.model.type.TypeMirror int javax.lang.model.type.TypeMirror java.util.List java.lang.String javax.lang.model.element.AnnotationValue java.lang.String int javax.lang.model.element.VariableElement java.lang.String javax.lang.model.element.VariableElement java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
            aload 26
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 94
       107: .line 324
            iconst_1
            ireturn
        end local 24 // java.lang.String deprecationMessage
        end local 23 // java.lang.String stability
        end local 22 // javax.lang.model.element.VariableElement stabilityElement
        end local 21 // java.lang.String category
        end local 20 // javax.lang.model.element.VariableElement categoryElement
        end local 19 // boolean deprecated
        end local 18 // java.lang.String optionName
        end local 17 // javax.lang.model.element.AnnotationValue value
        end local 16 // java.lang.String help
        end local 15 // java.util.List typeArguments
        end local 14 // javax.lang.model.type.TypeMirror optionMapType
        end local 13 // boolean optionMap
        end local 12 // javax.lang.model.type.TypeMirror fieldType
        end local 11 // javax.lang.model.util.Types typeUtils
        end local 10 // java.lang.String fieldName
        end local 9 // javax.lang.model.element.VariableElement field
        end local 8 // javax.lang.model.element.AnnotationMirror annotation
        end local 7 // javax.lang.model.element.AnnotationMirror prefix
        end local 6 // java.util.List groupPrefixStrings
        end local 5 // com.oracle.truffle.dsl.processor.TruffleTypes types
        end local 4 // com.oracle.truffle.dsl.processor.ProcessorContext context
        end local 3 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo info
        end local 2 // javax.lang.model.element.AnnotationMirror elementAnnotation
        end local 1 // javax.lang.model.element.Element element
        end local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  108     0                this  Lcom/oracle/truffle/dsl/processor/OptionProcessor;
            0  108     1             element  Ljavax/lang/model/element/Element;
            0  108     2   elementAnnotation  Ljavax/lang/model/element/AnnotationMirror;
            0  108     3                info  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;
            1  108     4             context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            2  108     5               types  Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            9  108     6  groupPrefixStrings  Ljava/util/List<Ljava/lang/String;>;
           10  108     7              prefix  Ljavax/lang/model/element/AnnotationMirror;
           14   32     8   erasedTruffleType  Ljavax/lang/model/type/TypeMirror;
           16   23     9        registration  Ljavax/lang/model/element/AnnotationMirror;
           25   32     9        registration  Ljavax/lang/model/element/AnnotationMirror;
           35  108     8          annotation  Ljavax/lang/model/element/AnnotationMirror;
           39  108     9               field  Ljavax/lang/model/element/VariableElement;
           40  108    10           fieldName  Ljava/lang/String;
           41  108    11           typeUtils  Ljavax/lang/model/util/Types;
           42  108    12           fieldType  Ljavax/lang/model/type/TypeMirror;
           55  108    13           optionMap  Z
           56  108    14       optionMapType  Ljavax/lang/model/type/TypeMirror;
           57  108    15       typeArguments  Ljava/util/List<+Ljavax/lang/model/type/TypeMirror;>;
           60  108    16                help  Ljava/lang/String;
           62   65    17           firstChar  C
           66  108    17               value  Ljavax/lang/model/element/AnnotationValue;
           68   69    18          optionName  Ljava/lang/String;
           70  108    18          optionName  Ljava/lang/String;
           74  108    19          deprecated  Z
           75  108    20     categoryElement  Ljavax/lang/model/element/VariableElement;
           78  108    21            category  Ljava/lang/String;
           81  108    22    stabilityElement  Ljavax/lang/model/element/VariableElement;
           84  108    23           stability  Ljava/lang/String;
           85  108    24  deprecationMessage  Ljava/lang/String;
           90   93    25           firstChar  C
           95  106    25               group  Ljava/lang/String;
          100  101    27                name  Ljava/lang/String;
          103  104    27                name  Ljava/lang/String;
          105  106    27                name  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      element            
      elementAnnotation  
      info               

  private static void error(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror, java.lang.String, java.lang.Object[]);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // javax.lang.model.element.Element element
        start local 1 // javax.lang.model.element.AnnotationMirror annotation
        start local 2 // java.lang.String message
        start local 3 // java.lang.Object[] args
         0: .line 328
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
            astore 4 /* processingEnv */
        start local 4 // javax.annotation.processing.ProcessingEnvironment processingEnv
         1: .line 329
            aload 2 /* message */
            aload 3 /* args */
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* formattedMessage */
        start local 5 // java.lang.String formattedMessage
         2: .line 330
            aload 4 /* processingEnv */
            aload 0 /* element */
            aload 5 /* formattedMessage */
            invokestatic com.oracle.truffle.dsl.processor.ExpectError.isExpectedError:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/Element;Ljava/lang/String;)Z
            ifeq 4
         3: .line 331
            return
         4: .line 333
      StackMap locals: javax.annotation.processing.ProcessingEnvironment java.lang.String
      StackMap stack:
            aload 4 /* processingEnv */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getMessager:()Ljavax/annotation/processing/Messager;
            getstatic javax.tools.Diagnostic$Kind.ERROR:Ljavax/tools/Diagnostic$Kind;
            aload 5 /* formattedMessage */
            aload 0 /* element */
            aload 1 /* annotation */
            invokeinterface javax.annotation.processing.Messager.printMessage:(Ljavax/tools/Diagnostic$Kind;Ljava/lang/CharSequence;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;)V
         5: .line 334
            return
        end local 5 // java.lang.String formattedMessage
        end local 4 // javax.annotation.processing.ProcessingEnvironment processingEnv
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.String message
        end local 1 // javax.lang.model.element.AnnotationMirror annotation
        end local 0 // javax.lang.model.element.Element element
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0           element  Ljavax/lang/model/element/Element;
            0    6     1        annotation  Ljavax/lang/model/element/AnnotationMirror;
            0    6     2           message  Ljava/lang/String;
            0    6     3              args  [Ljava/lang/Object;
            1    6     4     processingEnv  Ljavax/annotation/processing/ProcessingEnvironment;
            2    6     5  formattedMessage  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      element     
      annotation  
      message     
      args        

  private static void generateOptionDescriptor(com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo);
    descriptor: (Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo info
         0: .line 337
            aload 0 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.type:Ljavax/lang/model/element/Element;
            astore 1 /* element */
        start local 1 // javax.lang.model.element.Element element
         1: .line 338
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.dsl.processor.ProcessorContext context
         2: .line 340
            aload 2 /* context */
            aload 1 /* element */
            aload 0 /* info */
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.generateDescriptors:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/Element;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 3 /* unit */
        start local 3 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement unit
         3: .line 341
            aload 2 /* context */
            ldc Ljava/lang/Override;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.DeclaredType
            astore 4 /* overrideType */
        start local 4 // javax.lang.model.type.DeclaredType overrideType
         4: .line 342
            aload 3 /* unit */
            new com.oracle.truffle.dsl.processor.java.transform.GenerateOverrideVisitor
            dup
            aload 4 /* overrideType */
            invokespecial com.oracle.truffle.dsl.processor.java.transform.GenerateOverrideVisitor.<init>:(Ljavax/lang/model/type/DeclaredType;)V
            aconst_null
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.accept:(Ljavax/lang/model/element/ElementVisitor;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 343
            aload 3 /* unit */
            new com.oracle.truffle.dsl.processor.java.transform.FixWarningsVisitor
            dup
            aload 1 /* element */
            aload 4 /* overrideType */
            invokespecial com.oracle.truffle.dsl.processor.java.transform.FixWarningsVisitor.<init>:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/DeclaredType;)V
            aconst_null
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.accept:(Ljavax/lang/model/element/ElementVisitor;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 345
            aload 3 /* unit */
            new com.oracle.truffle.dsl.processor.CodeWriter
            dup
            aload 2 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
            aload 1 /* element */
            invokespecial com.oracle.truffle.dsl.processor.CodeWriter.<init>:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/Element;)V
            aconst_null
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.accept:(Ljavax/lang/model/element/ElementVisitor;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 346
            goto 12
      StackMap locals: com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo javax.lang.model.element.Element com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType
      StackMap stack: java.lang.RuntimeException
         8: astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
         9: .line 347
            aload 5 /* e */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            instanceof javax.annotation.processing.FilerException
            ifeq 12
        10: .line 349
            aload 5 /* e */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            ldc "Source file already created"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 350
            return
        end local 5 // java.lang.RuntimeException e
        12: .line 355
      StackMap locals:
      StackMap stack:
            return
        end local 4 // javax.lang.model.type.DeclaredType overrideType
        end local 3 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement unit
        end local 2 // com.oracle.truffle.dsl.processor.ProcessorContext context
        end local 1 // javax.lang.model.element.Element element
        end local 0 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo info
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          info  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;
            1   13     1       element  Ljavax/lang/model/element/Element;
            2   13     2       context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            3   13     3          unit  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            4   13     4  overrideType  Ljavax/lang/model/type/DeclaredType;
            9   12     5             e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.RuntimeException
    MethodParameters:
      Name  Flags
      info  

  private void handleThrowable(java.lang.Throwable, javax.lang.model.element.Element);
    descriptor: (Ljava/lang/Throwable;Ljavax/lang/model/element/Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
        start local 1 // java.lang.Throwable t
        start local 2 // javax.lang.model.element.Element e
         0: .line 358
            new java.lang.StringBuilder
            dup
            ldc "Uncaught error in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " while processing "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* message */
        start local 3 // java.lang.String message
         1: .line 359
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getMessager:()Ljavax/annotation/processing/Messager;
            getstatic javax.tools.Diagnostic$Kind.ERROR:Ljavax/tools/Diagnostic$Kind;
            new java.lang.StringBuilder
            dup
            aload 3 /* message */
            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 1 /* t */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.printException:(Ljava/lang/Throwable;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokeinterface javax.annotation.processing.Messager.printMessage:(Ljavax/tools/Diagnostic$Kind;Ljava/lang/CharSequence;Ljavax/lang/model/element/Element;)V
         2: .line 360
            return
        end local 3 // java.lang.String message
        end local 2 // javax.lang.model.element.Element e
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.dsl.processor.OptionProcessor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/dsl/processor/OptionProcessor;
            0    3     1        t  Ljava/lang/Throwable;
            0    3     2        e  Ljavax/lang/model/element/Element;
            1    3     3  message  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      t     
      e     

  private static com.oracle.truffle.dsl.processor.java.model.CodeTypeElement generateDescriptors(com.oracle.truffle.dsl.processor.ProcessorContext, javax.lang.model.element.Element, com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo);
    descriptor: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/Element;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=19, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.ProcessorContext context
        start local 1 // javax.lang.model.element.Element element
        start local 2 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo model
         0: .line 363
            aload 0 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            astore 3 /* types */
        start local 3 // com.oracle.truffle.dsl.processor.TruffleTypes types
         1: .line 364
            new java.lang.StringBuilder
            dup
            aload 1 /* element */
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getSimpleName:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.OptionDescriptors:Ljavax/lang/model/type/DeclaredType;
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* optionsClassName */
        start local 4 // java.lang.String optionsClassName
         2: .line 365
            aload 2 /* model */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.type:Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 5 /* sourceType */
        start local 5 // javax.lang.model.element.TypeElement sourceType
         3: .line 366
            aload 0 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            aload 5 /* sourceType */
            invokeinterface javax.lang.model.util.Elements.getPackageOf:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/PackageElement;
            astore 6 /* pack */
        start local 6 // javax.lang.model.element.PackageElement pack
         4: .line 367
            iconst_1
            anewarray javax.lang.model.element.Modifier
            dup
            iconst_0
            getstatic javax.lang.model.element.Modifier.FINAL:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            astore 7 /* typeModifiers */
        start local 7 // java.util.Set typeModifiers
         5: .line 368
            new com.oracle.truffle.dsl.processor.java.model.CodeTypeElement
            dup
            aload 7 /* typeModifiers */
            getstatic javax.lang.model.element.ElementKind.CLASS:Ljavax/lang/model/element/ElementKind;
            aload 6 /* pack */
            aload 4 /* optionsClassName */
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.<init>:(Ljava/util/Set;Ljavax/lang/model/element/ElementKind;Ljavax/lang/model/element/PackageElement;Ljava/lang/String;)V
            astore 8 /* descriptors */
        start local 8 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement descriptors
         6: .line 369
            aload 3 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.OptionDescriptors:Ljavax/lang/model/type/DeclaredType;
            astore 9 /* optionDescriptorsType */
        start local 9 // javax.lang.model.type.DeclaredType optionDescriptorsType
         7: .line 370
            aload 8 /* descriptors */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.getImplements:()Ljava/util/List;
            aload 9 /* optionDescriptorsType */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 371
            aload 0 /* context */
            aload 8 /* descriptors */
            aload 1 /* element */
            checkcast javax.lang.model.element.TypeElement
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.addGeneratedBy:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;Ljavax/lang/model/element/TypeElement;)V
         9: .line 373
            aload 9 /* optionDescriptorsType */
            ldc "get"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            astore 10 /* get */
        start local 10 // javax.lang.model.element.ExecutableElement get
        10: .line 374
            aload 10 /* get */
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 11 /* getMethod */
        start local 11 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getMethod
        11: .line 375
            aload 11 /* getMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.ABSTRACT:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        12: .line 376
            aload 11 /* getMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 12 /* builder */
        start local 12 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        13: .line 378
            aload 11 /* getMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 13 /* nameVariableName */
        start local 13 // java.lang.String nameVariableName
        14: .line 380
            iconst_0
            istore 14 /* elseIf */
        start local 14 // boolean elseIf
        15: .line 381
            aload 2 /* model */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.options:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 16
            goto 26
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.TruffleTypes java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String int top java.util.Iterator
      StackMap stack:
        16: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo
            astore 15 /* info */
        start local 15 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        17: .line 382
            aload 15 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.optionMap:Z
            ifne 19
        18: .line 383
            goto 26
        19: .line 385
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.TruffleTypes java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String int com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo java.util.Iterator
      StackMap stack:
            aload 12 /* builder */
            iload 14 /* elseIf */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:(Z)Z
            istore 14 /* elseIf */
        20: .line 389
            aload 12 /* builder */
            aload 13 /* nameVariableName */
            ldc "startsWith"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            new java.lang.StringBuilder
            dup
            aload 15 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.name: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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        21: .line 390
            aload 12 /* builder */
            ldc " || "
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        22: .line 391
            aload 12 /* builder */
            aload 13 /* nameVariableName */
            ldc "equals"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 15 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.name:Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        23: .line 393
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        24: .line 394
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* context */
            aload 15 /* info */
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.createBuildOptionDescriptor:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.tree:(Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        25: .line 395
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 15 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        26: .line 381
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.TruffleTypes java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String int top java.util.Iterator
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        27: .line 398
            iconst_0
            istore 15 /* startSwitch */
        start local 15 // boolean startSwitch
        28: .line 399
            aload 2 /* model */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.options:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 38
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.TruffleTypes java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String int int top java.util.Iterator
      StackMap stack:
        29: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo
            astore 16 /* info */
        start local 16 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        30: .line 400
            aload 16 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.optionMap:Z
            ifeq 32
        31: .line 401
            goto 38
        32: .line 403
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.TruffleTypes java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String int int com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo java.util.Iterator
      StackMap stack:
            iload 15 /* startSwitch */
            ifne 35
        33: .line 404
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startSwitch:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 13 /* nameVariableName */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        34: .line 405
            iconst_1
            istore 15 /* startSwitch */
        35: .line 407
      StackMap locals:
      StackMap stack:
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCase:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 16 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.name:Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCaseBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        36: .line 408
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* context */
            aload 16 /* info */
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.createBuildOptionDescriptor:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.tree:(Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        37: .line 409
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 16 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        38: .line 399
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.TruffleTypes java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String int int top java.util.Iterator
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        39: .line 411
            iload 15 /* startSwitch */
            ifeq 41
        40: .line 412
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        41: .line 414
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.TruffleTypes java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String int int
      StackMap stack:
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.returnNull:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        42: .line 415
            aload 8 /* descriptors */
            aload 11 /* getMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        43: .line 417
            aload 9 /* optionDescriptorsType */
            ldc "iterator"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 16 /* iteratorMethod */
        start local 16 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement iteratorMethod
        44: .line 418
            aload 16 /* iteratorMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.ABSTRACT:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        45: .line 419
            aload 16 /* iteratorMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 12 /* builder */
        46: .line 421
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        47: .line 422
            aload 2 /* model */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.options:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 50
        48: .line 423
            aload 12 /* builder */
            aload 0 /* context */
            ldc Ljava/util/Collections;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "<OptionDescriptor> emptyList().iterator"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        49: .line 424
            goto 63
        50: .line 425
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
      StackMap stack:
            aload 12 /* builder */
            aload 0 /* context */
            ldc Ljava/util/Arrays;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "asList"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        51: .line 426
            aload 2 /* model */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo.options:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 59
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.TruffleTypes java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String int int com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
        52: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo
            astore 17 /* info */
        start local 17 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        53: .line 427
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        54: .line 428
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIndention:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        55: .line 429
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.newLine:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        56: .line 430
            aload 12 /* builder */
            aload 0 /* context */
            aload 17 /* info */
            invokestatic com.oracle.truffle.dsl.processor.OptionProcessor.createBuildOptionDescriptor:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.tree:(Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        57: .line 431
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        58: .line 432
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 17 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        59: .line 426
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 52
        60: .line 434
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        61: .line 435
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.newLine:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        62: .line 436
            aload 12 /* builder */
            ldc ""
            ldc "iterator"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        63: .line 438
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo com.oracle.truffle.dsl.processor.TruffleTypes java.lang.String javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String int int com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
      StackMap stack:
            aload 12 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        64: .line 439
            aload 8 /* descriptors */
            aload 16 /* iteratorMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        65: .line 441
            aload 8 /* descriptors */
            areturn
        end local 16 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement iteratorMethod
        end local 15 // boolean startSwitch
        end local 14 // boolean elseIf
        end local 13 // java.lang.String nameVariableName
        end local 12 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        end local 11 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getMethod
        end local 10 // javax.lang.model.element.ExecutableElement get
        end local 9 // javax.lang.model.type.DeclaredType optionDescriptorsType
        end local 8 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement descriptors
        end local 7 // java.util.Set typeModifiers
        end local 6 // javax.lang.model.element.PackageElement pack
        end local 5 // javax.lang.model.element.TypeElement sourceType
        end local 4 // java.lang.String optionsClassName
        end local 3 // com.oracle.truffle.dsl.processor.TruffleTypes types
        end local 2 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo model
        end local 1 // javax.lang.model.element.Element element
        end local 0 // com.oracle.truffle.dsl.processor.ProcessorContext context
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   66     0                context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            0   66     1                element  Ljavax/lang/model/element/Element;
            0   66     2                  model  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionsInfo;
            1   66     3                  types  Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            2   66     4       optionsClassName  Ljava/lang/String;
            3   66     5             sourceType  Ljavax/lang/model/element/TypeElement;
            4   66     6                   pack  Ljavax/lang/model/element/PackageElement;
            5   66     7          typeModifiers  Ljava/util/Set<Ljavax/lang/model/element/Modifier;>;
            6   66     8            descriptors  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            7   66     9  optionDescriptorsType  Ljavax/lang/model/type/DeclaredType;
           10   66    10                    get  Ljavax/lang/model/element/ExecutableElement;
           11   66    11              getMethod  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           13   66    12                builder  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
           14   66    13       nameVariableName  Ljava/lang/String;
           15   66    14                 elseIf  Z
           17   26    15                   info  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;
           28   66    15            startSwitch  Z
           30   38    16                   info  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;
           44   66    16         iteratorMethod  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           53   59    17                   info  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;
    MethodParameters:
         Name  Flags
      context  
      element  
      model    

  private static com.oracle.truffle.dsl.processor.java.model.CodeTree createBuildOptionDescriptor(com.oracle.truffle.dsl.processor.ProcessorContext, com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo);
    descriptor: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.ProcessorContext context
        start local 1 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
         0: .line 445
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 2 /* builder */
        start local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
         1: .line 446
            aload 0 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            astore 3 /* types */
        start local 3 // com.oracle.truffle.dsl.processor.TruffleTypes types
         2: .line 447
            aload 2 /* builder */
            aload 3 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.OptionDescriptor:Ljavax/lang/model/type/DeclaredType;
            ldc "newBuilder"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
         3: .line 448
            aload 1 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.field:Ljavax/lang/model/element/VariableElement;
            astore 4 /* var */
        start local 4 // javax.lang.model.element.VariableElement var
         4: .line 449
            aload 2 /* builder */
            aload 4 /* var */
            invokeinterface javax.lang.model.element.VariableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 4 /* var */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
         5: .line 450
            aload 2 /* builder */
            aload 1 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.name:Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
         6: .line 451
            aload 2 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
         7: .line 452
            aload 1 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.deprecated:Z
            ifeq 11
         8: .line 453
            aload 2 /* builder */
            ldc ""
            ldc "deprecated"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "true"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
         9: .line 454
            aload 2 /* builder */
            ldc ""
            ldc "deprecationMessage"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 1 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.deprecationMessage:Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        10: .line 455
            goto 12
        11: .line 456
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.VariableElement
      StackMap stack:
            aload 2 /* builder */
            ldc ""
            ldc "deprecated"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "false"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        12: .line 458
      StackMap locals:
      StackMap stack:
            aload 2 /* builder */
            ldc ""
            ldc "help"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 1 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.help:Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        13: .line 459
            aload 2 /* builder */
            ldc ""
            ldc "category"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 3 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.OptionCategory:Ljavax/lang/model/type/DeclaredType;
            aload 1 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.category:Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        14: .line 460
            aload 2 /* builder */
            ldc ""
            ldc "stability"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 3 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.OptionStability:Ljavax/lang/model/type/DeclaredType;
            aload 1 /* info */
            getfield com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo.stability:Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        15: .line 462
            aload 2 /* builder */
            ldc ""
            ldc "build"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        16: .line 463
            aload 2 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.build:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            areturn
        end local 4 // javax.lang.model.element.VariableElement var
        end local 3 // com.oracle.truffle.dsl.processor.TruffleTypes types
        end local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        end local 1 // com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo info
        end local 0 // com.oracle.truffle.dsl.processor.ProcessorContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0  context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            0   17     1     info  Lcom/oracle/truffle/dsl/processor/OptionProcessor$OptionInfo;
            1   17     2  builder  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            2   17     3    types  Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            4   17     4      var  Ljavax/lang/model/element/VariableElement;
    MethodParameters:
         Name  Flags
      context  
      info     
}
SourceFile: "OptionProcessor.java"
NestMembers:
  com.oracle.truffle.dsl.processor.OptionProcessor$1  com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo  com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo
InnerClasses:
  com.oracle.truffle.dsl.processor.OptionProcessor$1
  OptionInfo = com.oracle.truffle.dsl.processor.OptionProcessor$OptionInfo of com.oracle.truffle.dsl.processor.OptionProcessor
  OptionsInfo = com.oracle.truffle.dsl.processor.OptionProcessor$OptionsInfo of com.oracle.truffle.dsl.processor.OptionProcessor
  public final Kind = javax.tools.Diagnostic$Kind of javax.tools.Diagnostic
    RuntimeVisibleAnnotations: 
      javax.annotation.processing.SupportedAnnotationTypes(value = {"com.oracle.truffle.api.Option", "com.oracle.truffle.api.Option.Group"})