final class com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState
  super_class: java.lang.Object
{
  private final com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory factory;
    descriptor: Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable> values;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;>;

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

  private final com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode mode;
    descriptor: Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement method;
    descriptor: Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<javax.lang.model.type.TypeMirror> caughtTypes;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljavax/lang/model/type/TypeMirror;>;

  private void <init>(com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory, com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode, com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement);
    descriptor: (Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory factory
        start local 2 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode mode
        start local 3 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement method
         0: .line 5147
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 5141
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
         2: .line 5142
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.directValues:Ljava/util/Map;
         3: .line 5153
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.caughtTypes:Ljava/util/List;
         4: .line 5148
            aload 0 /* this */
            aload 1 /* factory */
            putfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
         5: .line 5149
            aload 0 /* this */
            aload 2 /* mode */
            putfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.mode:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;
         6: .line 5150
            aload 0 /* this */
            aload 3 /* method */
            putfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.method:Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
         7: .line 5151
            return
        end local 3 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement method
        end local 2 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode mode
        end local 1 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory factory
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    8     1  factory  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            0    8     2     mode  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;
            0    8     3   method  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    MethodParameters:
         Name  Flags
      factory  
      mode     
      method   

  public void addCaughtException(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // javax.lang.model.type.TypeMirror exceptionType
         0: .line 5156
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.caughtTypes:Ljava/util/List;
            aload 1 /* exceptionType */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 5157
            return
        end local 1 // javax.lang.model.type.TypeMirror exceptionType
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    2     1  exceptionType  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
               Name  Flags
      exceptionType  

  public void addThrownExceptions(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // javax.lang.model.element.ExecutableElement calledMethod
         0: .line 5160
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            astore 2 /* types */
        start local 2 // com.oracle.truffle.dsl.processor.TruffleTypes types
         1: .line 5161
            aload 1 /* calledMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getThrownTypes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 20
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.TruffleTypes top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 3 /* thrownType */
        start local 3 // javax.lang.model.type.TypeMirror thrownType
         3: .line 5162
            aload 3 /* thrownType */
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/RuntimeException;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 20
         4: .line 5163
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.generatorMode:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$GeneratorMode;
            getstatic com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$GeneratorMode.EXPORTED_MESSAGE:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$GeneratorMode;
            if_acmpeq 6
            aload 3 /* thrownType */
            aload 2 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.UnexpectedResultException:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 6
         5: .line 5164
            goto 20
         6: .line 5167
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.caughtTypes:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror java.util.Iterator top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 5 /* caughtType */
        start local 5 // javax.lang.model.type.TypeMirror caughtType
         8: .line 5168
            aload 5 /* caughtType */
            aload 3 /* thrownType */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 10
         9: .line 5169
            goto 20
        end local 5 // javax.lang.model.type.TypeMirror caughtType
        10: .line 5167
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 5173
            iconst_0
            istore 5 /* found */
        start local 5 // boolean found
        12: .line 5174
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.method:Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getThrownTypes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 17
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror java.util.Iterator int top java.util.Iterator
      StackMap stack:
        13: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 6 /* foundType */
        start local 6 // javax.lang.model.type.TypeMirror foundType
        14: .line 5175
            aload 3 /* thrownType */
            aload 6 /* foundType */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 17
        15: .line 5176
            iconst_1
            istore 5 /* found */
        16: .line 5177
            goto 18
        end local 6 // javax.lang.model.type.TypeMirror foundType
        17: .line 5174
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        18: .line 5180
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror java.util.Iterator int
      StackMap stack:
            iload 5 /* found */
            ifne 20
        19: .line 5181
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.method:Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getThrownTypes:()Ljava/util/List;
            aload 3 /* thrownType */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // boolean found
        end local 3 // javax.lang.model.type.TypeMirror thrownType
        20: .line 5161
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.TruffleTypes top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        21: .line 5185
            return
        end local 2 // com.oracle.truffle.dsl.processor.TruffleTypes types
        end local 1 // javax.lang.model.element.ExecutableElement calledMethod
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0          this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0   22     1  calledMethod  Ljavax/lang/model/element/ExecutableElement;
            1   22     2         types  Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            3   20     3    thrownType  Ljavax/lang/model/type/TypeMirror;
            8   10     5    caughtType  Ljavax/lang/model/type/TypeMirror;
           12   20     5         found  Z
           14   17     6     foundType  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
              Name  Flags
      calledMethod  

  public com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode getMode();
    descriptor: ()Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
         0: .line 5188
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.mode:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;
            areturn
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;

  public void setBoolean(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // java.lang.String name
        start local 2 // boolean value
         0: .line 5192
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.directValues:Ljava/util/Map;
            aload 1 /* name */
            iload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 5193
            return
        end local 2 // boolean value
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    2     1   name  Ljava/lang/String;
            0    2     2  value  Z
    MethodParameters:
       Name  Flags
      name   
      value  

  public boolean getBoolean(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // java.lang.String name
        start local 2 // boolean defaultValue
         0: .line 5196
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.directValues:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 3 /* bool */
        start local 3 // java.lang.Boolean bool
         1: .line 5197
            aload 3 /* bool */
            ifnonnull 3
         2: .line 5198
            iload 2 /* defaultValue */
            ireturn
         3: .line 5200
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 3 /* bool */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 3 // java.lang.Boolean bool
        end local 2 // boolean defaultValue
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    4     1          name  Ljava/lang/String;
            0    4     2  defaultValue  Z
            1    4     3          bool  Ljava/lang/Boolean;
    MethodParameters:
              Name  Flags
      name          
      defaultValue  

  public static com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState load(com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory, com.oracle.truffle.dsl.processor.model.ExecutableTypeData, int, com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode, com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement);
    descriptor: (Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;Lcom/oracle/truffle/dsl/processor/model/ExecutableTypeData;ILcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory factory
        start local 1 // com.oracle.truffle.dsl.processor.model.ExecutableTypeData type
        start local 2 // int varargsThreshold
        start local 3 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode mode
        start local 4 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement method
         0: .line 5205
            new com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState
            dup
            aload 0 /* factory */
            aload 3 /* mode */
            aload 4 /* method */
            invokespecial com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.<init>:(Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
            astore 5 /* context */
        start local 5 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState context
         1: .line 5206
            aload 5 /* context */
            aload 1 /* type */
            iload 2 /* varargsThreshold */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.loadEvaluatedValues:(Lcom/oracle/truffle/dsl/processor/model/ExecutableTypeData;I)V
         2: .line 5207
            aload 5 /* context */
            areturn
        end local 5 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState context
        end local 4 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement method
        end local 3 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode mode
        end local 2 // int varargsThreshold
        end local 1 // com.oracle.truffle.dsl.processor.model.ExecutableTypeData type
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory factory
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0           factory  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            0    3     1              type  Lcom/oracle/truffle/dsl/processor/model/ExecutableTypeData;
            0    3     2  varargsThreshold  I
            0    3     3              mode  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;
            0    3     4            method  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            1    3     5           context  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
    MethodParameters:
                  Name  Flags
      factory           
      type              
      varargsThreshold  
      mode              
      method            

  private void loadEvaluatedValues(com.oracle.truffle.dsl.processor.model.ExecutableTypeData, int);
    descriptor: (Lcom/oracle/truffle/dsl/processor/model/ExecutableTypeData;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=11, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // com.oracle.truffle.dsl.processor.model.ExecutableTypeData executedType
        start local 2 // int varargsThreshold
         0: .line 5211
            aload 1 /* executedType */
            invokevirtual com.oracle.truffle.dsl.processor.model.ExecutableTypeData.getFrameParameter:()Ljavax/lang/model/type/TypeMirror;
            astore 3 /* frame */
        start local 3 // javax.lang.model.type.TypeMirror frame
         1: .line 5212
            aload 3 /* frame */
            ifnonnull 4
         2: .line 5213
            aload 0 /* this */
            ldc "frameValue"
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.removeValue:(Ljava/lang/String;)V
         3: .line 5214
            goto 5
         4: .line 5215
      StackMap locals: javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 0 /* this */
            ldc "frameValue"
            new com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable
            dup
            aload 3 /* frame */
            ldc "frameValue"
            aconst_null
            invokespecial com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)V
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.set:(Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;)V
         5: .line 5217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.node:Lcom/oracle/truffle/dsl/processor/model/NodeData;
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeData.getFields:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 13
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.model.ExecutableTypeData int javax.lang.model.type.TypeMirror top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.model.NodeFieldData
            astore 4 /* field */
        start local 4 // com.oracle.truffle.dsl.processor.model.NodeFieldData field
         7: .line 5218
            aload 4 /* field */
            invokestatic com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.fieldValueName:(Lcom/oracle/truffle/dsl/processor/model/NodeFieldData;)Ljava/lang/String;
            astore 6 /* fieldName */
        start local 6 // java.lang.String fieldName
         8: .line 5220
            aload 0 /* this */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.getMode:()Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode.isUncached:()Z
            ifeq 11
         9: .line 5221
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 4 /* field */
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeFieldData.getType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.defaultValue:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.build:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            astore 7 /* lookupValue */
        start local 7 // com.oracle.truffle.dsl.processor.java.model.CodeTree lookupValue
        10: .line 5222
            goto 12
        end local 7 // com.oracle.truffle.dsl.processor.java.model.CodeTree lookupValue
        11: .line 5223
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.model.ExecutableTypeData int javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.model.NodeFieldData java.util.Iterator java.lang.String
      StackMap stack:
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "this."
            aload 4 /* field */
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeFieldData.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.build:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            astore 7 /* lookupValue */
        start local 7 // com.oracle.truffle.dsl.processor.java.model.CodeTree lookupValue
        12: .line 5225
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeTree
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            aload 6 /* fieldName */
            new com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable
            dup
            aload 4 /* field */
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeFieldData.getType:()Ljavax/lang/model/type/TypeMirror;
            aload 6 /* fieldName */
            aload 7 /* lookupValue */
            invokespecial com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // com.oracle.truffle.dsl.processor.java.model.CodeTree lookupValue
        end local 6 // java.lang.String fieldName
        end local 4 // com.oracle.truffle.dsl.processor.model.NodeFieldData field
        13: .line 5217
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.model.ExecutableTypeData int javax.lang.model.type.TypeMirror top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        14: .line 5227
            aload 0 /* this */
            iconst_0
            iload 2 /* varargsThreshold */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.needsVarargs:(ZI)Z
            istore 4 /* varargs */
        start local 4 // boolean varargs
        15: .line 5228
            aload 1 /* executedType */
            invokevirtual com.oracle.truffle.dsl.processor.model.ExecutableTypeData.getEvaluatedParameters:()Ljava/util/List;
            astore 5 /* evaluatedParameter */
        start local 5 // java.util.List evaluatedParameter
        16: .line 5229
            iconst_0
            istore 6 /* evaluatedIndex */
        start local 6 // int evaluatedIndex
        17: .line 5230
            iconst_0
            istore 7 /* executionIndex */
        start local 7 // int executionIndex
        18: goto 28
        19: .line 5231
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.model.ExecutableTypeData int javax.lang.model.type.TypeMirror int java.util.List int int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.node:Lcom/oracle/truffle/dsl/processor/model/NodeData;
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeData.getChildExecutions:()Ljava/util/List;
            iload 7 /* executionIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.model.NodeExecutionData
            astore 8 /* execution */
        start local 8 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        20: .line 5232
            iload 6 /* evaluatedIndex */
            aload 1 /* executedType */
            invokevirtual com.oracle.truffle.dsl.processor.model.ExecutableTypeData.getEvaluatedCount:()I
            if_icmpge 27
        21: .line 5233
            aload 5 /* evaluatedParameter */
            iload 6 /* evaluatedIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 9 /* evaluatedType */
        start local 9 // javax.lang.model.type.TypeMirror evaluatedType
        22: .line 5234
            aload 0 /* this */
            aload 8 /* execution */
            aload 9 /* evaluatedType */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.createValue:(Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
            astore 10 /* value */
        start local 10 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable value
        23: .line 5235
            iload 4 /* varargs */
            ifeq 25
        24: .line 5236
            aload 10 /* value */
            iload 6 /* evaluatedIndex */
            invokestatic com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.createReadVarargs:(I)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.accessWith:(Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
            astore 10 /* value */
        25: .line 5238
      StackMap locals: com.oracle.truffle.dsl.processor.model.NodeExecutionData javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            aload 10 /* value */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.getName:()Ljava/lang/String;
            aload 10 /* value */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.makeOriginal:()Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 5239
            iinc 6 /* evaluatedIndex */ 1
        end local 10 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable value
        end local 9 // javax.lang.model.type.TypeMirror evaluatedType
        end local 8 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        27: .line 5230
      StackMap locals:
      StackMap stack:
            iinc 7 /* executionIndex */ 1
      StackMap locals:
      StackMap stack:
        28: iload 7 /* executionIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.node:Lcom/oracle/truffle/dsl/processor/model/NodeData;
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeData.getExecutionCount:()I
            if_icmplt 19
        end local 7 // int executionIndex
        29: .line 5242
            return
        end local 6 // int evaluatedIndex
        end local 5 // java.util.List evaluatedParameter
        end local 4 // boolean varargs
        end local 3 // javax.lang.model.type.TypeMirror frame
        end local 2 // int varargsThreshold
        end local 1 // com.oracle.truffle.dsl.processor.model.ExecutableTypeData executedType
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   30     0                this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0   30     1        executedType  Lcom/oracle/truffle/dsl/processor/model/ExecutableTypeData;
            0   30     2    varargsThreshold  I
            1   30     3               frame  Ljavax/lang/model/type/TypeMirror;
            7   13     4               field  Lcom/oracle/truffle/dsl/processor/model/NodeFieldData;
            8   13     6           fieldName  Ljava/lang/String;
           10   11     7         lookupValue  Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
           12   13     7         lookupValue  Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
           15   30     4             varargs  Z
           16   30     5  evaluatedParameter  Ljava/util/List<Ljavax/lang/model/type/TypeMirror;>;
           17   30     6      evaluatedIndex  I
           18   29     7      executionIndex  I
           20   27     8           execution  Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;
           22   27     9       evaluatedType  Ljavax/lang/model/type/TypeMirror;
           23   27    10               value  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    MethodParameters:
                  Name  Flags
      executedType      
      varargsThreshold  

  public static com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState load(com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory, com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode, com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement);
    descriptor: (Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory factory
        start local 1 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode mode
        start local 2 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement method
         0: .line 5245
            aload 0 /* factory */
            aload 0 /* factory */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.createExecuteAndSpecializeType:()Lcom/oracle/truffle/dsl/processor/model/ExecutableTypeData;
            ldc 2147483647
            aload 1 /* mode */
            aload 2 /* method */
            invokestatic com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.load:(Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;Lcom/oracle/truffle/dsl/processor/model/ExecutableTypeData;ILcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            areturn
        end local 2 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement method
        end local 1 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode mode
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory factory
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  factory  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            0    1     1     mode  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;
            0    1     2   method  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    MethodParameters:
         Name  Flags
      factory  
      mode     
      method   

  public com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState copy();
    descriptor: ()Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
         0: .line 5249
            new com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.mode:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.method:Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokespecial com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.<init>:(Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$NodeExecutionMode;Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
            astore 1 /* copy */
        start local 1 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState copy
         1: .line 5250
            aload 1 /* copy */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         2: .line 5251
            aload 1 /* copy */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.caughtTypes:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.caughtTypes:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 5252
            aload 1 /* copy */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.directValues:Ljava/util/Map;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.directValues:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         4: .line 5253
            aload 1 /* copy */
            areturn
        end local 1 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState copy
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            1    5     1  copy  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;

  private static java.lang.String fieldValueName(com.oracle.truffle.dsl.processor.model.NodeFieldData);
    descriptor: (Lcom/oracle/truffle/dsl/processor/model/NodeFieldData;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.model.NodeFieldData field
         0: .line 5257
            new java.lang.StringBuilder
            dup
            aload 0 /* field */
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeFieldData.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Value"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.dsl.processor.model.NodeFieldData field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  field  Lcom/oracle/truffle/dsl/processor/model/NodeFieldData;
    MethodParameters:
       Name  Flags
      field  

  public com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable createValue(com.oracle.truffle.dsl.processor.model.NodeExecutionData, javax.lang.model.type.TypeMirror);
    descriptor: (Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        start local 2 // javax.lang.model.type.TypeMirror type
         0: .line 5262
            new com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable
            dup
            aload 2 /* type */
            aload 1 /* execution */
            invokestatic com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.valueName:(Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Ljava/lang/String;
            aconst_null
            invokespecial com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)V
            areturn
        end local 2 // javax.lang.model.type.TypeMirror type
        end local 1 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    1     1  execution  Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;
            0    1     2       type  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
           Name  Flags
      execution  
      type       

  private static java.lang.String valueName(com.oracle.truffle.dsl.processor.model.NodeExecutionData);
    descriptor: (Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
         0: .line 5266
            new java.lang.StringBuilder
            dup
            aload 0 /* execution */
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeExecutionData.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Value"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  execution  Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;
    MethodParameters:
           Name  Flags
      execution  

  public void set(java.lang.String, com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // java.lang.String id
        start local 2 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
         0: .line 5270
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            aload 1 /* id */
            aload 2 /* var */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 5271
            return
        end local 2 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
        end local 1 // java.lang.String id
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    2     1    id  Ljava/lang/String;
            0    2     2   var  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    MethodParameters:
      Name  Flags
      id    
      var   

  public void set(com.oracle.truffle.dsl.processor.model.NodeExecutionData, com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable);
    descriptor: (Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        start local 2 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
         0: .line 5274
            aload 0 /* this */
            aload 1 /* execution */
            invokestatic com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.valueName:(Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Ljava/lang/String;
            aload 2 /* var */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.set:(Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;)V
         1: .line 5275
            return
        end local 2 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
        end local 1 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    2     1  execution  Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;
            0    2     2        var  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    MethodParameters:
           Name  Flags
      execution  
      var        

  public com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable get(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // java.lang.String id
         0: .line 5278
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            aload 1 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable
            areturn
        end local 1 // java.lang.String id
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    1     1    id  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      id    

  public com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable getValue(com.oracle.truffle.dsl.processor.model.NodeExecutionData);
    descriptor: (Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
         0: .line 5282
            aload 0 /* this */
            aload 1 /* execution */
            invokestatic com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.valueName:(Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.get:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
            areturn
        end local 1 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    1     1  execution  Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;
    MethodParameters:
           Name  Flags
      execution  

  public com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable getValue(int);
    descriptor: (I)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // int signatureIndex
         0: .line 5286
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.node:Lcom/oracle/truffle/dsl/processor/model/NodeData;
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeData.getChildExecutions:()Ljava/util/List;
            astore 2 /* childExecutions */
        start local 2 // java.util.List childExecutions
         1: .line 5287
            iload 1 /* signatureIndex */
            aload 2 /* childExecutions */
            invokeinterface java.util.List.size:()I
            if_icmpge 3
         2: .line 5288
            aload 0 /* this */
            aload 2 /* childExecutions */
            iload 1 /* signatureIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.model.NodeExecutionData
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.getValue:(Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
            areturn
         3: .line 5290
      StackMap locals: java.util.List
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.util.List childExecutions
        end local 1 // int signatureIndex
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    4     1   signatureIndex  I
            1    4     2  childExecutions  Ljava/util/List<Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;>;
    MethodParameters:
                Name  Flags
      signatureIndex  

  public void removeValue(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // java.lang.String id
         0: .line 5295
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            aload 1 /* id */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 5296
            return
        end local 1 // java.lang.String id
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    2     1    id  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      id    

  public void setValue(com.oracle.truffle.dsl.processor.model.NodeExecutionData, com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable);
    descriptor: (Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        start local 2 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
         0: .line 5299
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            aload 1 /* execution */
            invokestatic com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.valueName:(Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Ljava/lang/String;
            aload 2 /* var */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 5300
            return
        end local 2 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
        end local 1 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    2     1  execution  Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;
            0    2     2        var  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    MethodParameters:
           Name  Flags
      execution  
      var        

  private boolean needsVarargs(boolean, int);
    descriptor: (ZI)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // boolean requireLoaded
        start local 2 // int varArgsThreshold
         0: .line 5303
            iconst_0
            istore 3 /* size */
        start local 3 // int size
         1: .line 5304
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.node:Lcom/oracle/truffle/dsl/processor/model/NodeData;
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeData.getChildExecutions:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState int int int top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.model.NodeExecutionData
            astore 4 /* execution */
        start local 4 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
         3: .line 5305
            iload 1 /* requireLoaded */
            ifeq 5
            aload 0 /* this */
            aload 4 /* execution */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.getValue:(Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
            ifnonnull 5
         4: .line 5306
            goto 6
         5: .line 5308
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState int int int com.oracle.truffle.dsl.processor.model.NodeExecutionData java.util.Iterator
      StackMap stack:
            iinc 3 /* size */ 1
        end local 4 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
         6: .line 5304
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState int int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 5310
            iload 3 /* size */
            iload 2 /* varArgsThreshold */
            if_icmplt 8
            iconst_1
            ireturn
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState int int int
      StackMap stack:
         8: iconst_0
            ireturn
        end local 3 // int size
        end local 2 // int varArgsThreshold
        end local 1 // boolean requireLoaded
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0    9     1     requireLoaded  Z
            0    9     2  varArgsThreshold  I
            1    9     3              size  I
            3    6     4         execution  Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;
    MethodParameters:
                  Name  Flags
      requireLoaded     
      varArgsThreshold  

  private static com.oracle.truffle.dsl.processor.java.model.CodeTree createReadVarargs(int);
    descriptor: (I)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int i
         0: .line 5314
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "args_["
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            iload 0 /* i */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "]"
            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.build:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            areturn
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  I
    MethodParameters:
      Name  Flags
      i     

  public void addReferencesTo(com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        start local 2 // java.lang.String[] optionalNames
         0: .line 5318
            aload 2 /* optionalNames */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* var */
        start local 3 // java.lang.String var
         2: .line 5319
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            aload 3 /* var */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable
            astore 7 /* local */
        start local 7 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable local
         3: .line 5320
            aload 7 /* local */
            ifnull 5
         4: .line 5321
            aload 1 /* builder */
            aload 7 /* local */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.createReference:()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
        end local 7 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable local
        end local 3 // java.lang.String var
         5: .line 5318
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 1
         7: .line 5325
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.node:Lcom/oracle/truffle/dsl/processor/model/NodeData;
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeData.getChildExecutions:()Ljava/util/List;
            astore 3 /* executions */
        start local 3 // java.util.List executions
         8: .line 5326
            aload 3 /* executions */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 13
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String[] java.util.List top java.util.Iterator
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.model.NodeExecutionData
            astore 4 /* execution */
        start local 4 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        10: .line 5327
            aload 0 /* this */
            aload 4 /* execution */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.getValue:(Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
            astore 6 /* var */
        start local 6 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
        11: .line 5328
            aload 6 /* var */
            ifnull 13
        12: .line 5329
            aload 1 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 6 /* var */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.createReference:()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
        end local 6 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
        end local 4 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        13: .line 5326
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        14: .line 5332
            return
        end local 3 // java.util.List executions
        end local 2 // java.lang.String[] optionalNames
        end local 1 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0   15     1        builder  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            0   15     2  optionalNames  [Ljava/lang/String;
            2    5     3            var  Ljava/lang/String;
            3    5     7          local  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
            8   15     3     executions  Ljava/util/List<Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;>;
           10   13     4      execution  Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;
           11   13     6            var  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    MethodParameters:
               Name  Flags
      builder        
      optionalNames  

  public void addParametersTo(com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement, int, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;I[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
        start local 1 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement targetMethod
        start local 2 // int varArgsThreshold
        start local 3 // java.lang.String[] optionalNames
         0: .line 5335
            aload 3 /* optionalNames */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 6
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         1: aload 7
            iload 5
            aaload
            astore 4 /* var */
        start local 4 // java.lang.String var
         2: .line 5336
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            aload 4 /* var */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable
            astore 8 /* local */
        start local 8 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable local
         3: .line 5337
            aload 8 /* local */
            ifnull 5
         4: .line 5338
            aload 1 /* targetMethod */
            aload 8 /* local */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.createParameter:()Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.addParameter:(Ljavax/lang/model/element/VariableElement;)V
        end local 8 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable local
        end local 4 // java.lang.String var
         5: .line 5335
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         6: iload 5
            iload 6
            if_icmplt 1
         7: .line 5341
            aload 0 /* this */
            iconst_1
            iload 2 /* varArgsThreshold */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.needsVarargs:(ZI)Z
            ifeq 11
         8: .line 5342
            aload 1 /* targetMethod */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            ldc [Ljava/lang/Object;
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "args_"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.addParameter:(Ljavax/lang/model/element/VariableElement;)V
         9: .line 5343
            aload 1 /* targetMethod */
            iconst_1
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.setVarArgs:(Z)V
        10: .line 5344
            goto 17
        11: .line 5345
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.factory:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.node:Lcom/oracle/truffle/dsl/processor/model/NodeData;
            invokevirtual com.oracle.truffle.dsl.processor.model.NodeData.getChildExecutions:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.lang.String[] top java.util.Iterator
      StackMap stack:
        12: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.model.NodeExecutionData
            astore 4 /* execution */
        start local 4 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        13: .line 5346
            aload 0 /* this */
            aload 4 /* execution */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.getValue:(Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;)Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
            astore 6 /* var */
        start local 6 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
        14: .line 5347
            aload 6 /* var */
            ifnull 16
        15: .line 5348
            aload 1 /* targetMethod */
            aload 6 /* var */
            invokevirtual com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable.createParameter:()Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.addParameter:(Ljavax/lang/model/element/VariableElement;)V
        end local 6 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable var
        end local 4 // com.oracle.truffle.dsl.processor.model.NodeExecutionData execution
        16: .line 5345
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        17: .line 5352
      StackMap locals: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.lang.String[]
      StackMap stack:
            return
        end local 3 // java.lang.String[] optionalNames
        end local 2 // int varArgsThreshold
        end local 1 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement targetMethod
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
            0   18     1      targetMethod  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            0   18     2  varArgsThreshold  I
            0   18     3     optionalNames  [Ljava/lang/String;
            2    5     4               var  Ljava/lang/String;
            3    5     8             local  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
           13   16     4         execution  Lcom/oracle/truffle/dsl/processor/model/NodeExecutionData;
           14   16     6               var  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$LocalVariable;
    MethodParameters:
                  Name  Flags
      targetMethod      
      varArgsThreshold  
      optionalNames     

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
         0: .line 5356
            new java.lang.StringBuilder
            dup
            ldc "LocalContext [values="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState.values:Ljava/util/Map;
            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;
            areturn
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$FrameState;
}
SourceFile: "FlatNodeGenFactory.java"
NestHost: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory
InnerClasses:
  final FrameState = com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$FrameState of com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory
  public final GeneratorMode = com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$GeneratorMode of com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory
  final LocalVariable = com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$LocalVariable of com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory
  private final NodeExecutionMode = com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$NodeExecutionMode of com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory