public final class com.oracle.truffle.dsl.processor.InstrumentableProcessor extends javax.annotation.processing.AbstractProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.dsl.processor.InstrumentableProcessor
  super_class: javax.annotation.processing.AbstractProcessor
{
  private static final java.lang.String CLASS_SUFFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Wrapper"

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

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

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

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

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

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

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

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

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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
         0: .line 83
            aload 0 /* this */
            invokespecial javax.annotation.processing.AbstractProcessor.<init>:()V
            return
        end local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;

  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.InstrumentableProcessor this
         0: .line 101
            invokestatic javax.lang.model.SourceVersion.latest:()Ljavax/lang/model/SourceVersion;
            areturn
        end local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;

  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.InstrumentableProcessor this
        start local 1 // java.util.Set annotations
        start local 2 // javax.annotation.processing.RoundEnvironment roundEnv
         0: .line 108
            aload 2 /* roundEnv */
            invokeinterface javax.annotation.processing.RoundEnvironment.processingOver:()Z
            ifeq 2
         1: .line 109
            iconst_0
            ireturn
         2: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.InstrumentableProcessor.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 113
            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 114
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.InstrumentableNode:Ljavax/lang/model/type/DeclaredType;
            astore 5 /* instrumentableNode */
        start local 5 // javax.lang.model.type.DeclaredType instrumentableNode
         5: .line 115
            aload 5 /* instrumentableNode */
            ldc "createWrapper"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            astore 6 /* createWrapper */
        start local 6 // javax.lang.model.element.ExecutableElement createWrapper
         6: .line 117
            aload 2 /* roundEnv */
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper: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 8
            goto 60
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.Element
            astore 7 /* element */
        start local 7 // javax.lang.model.element.Element element
         8: .line 118
            aload 7 /* element */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.isClass:()Z
            ifne 10
            aload 7 /* element */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.isInterface:()Z
            ifne 10
         9: .line 119
            goto 60
        10: .line 121
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement javax.lang.model.element.Element java.util.Iterator
      StackMap stack:
            aload 7 /* element */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getPackageName:(Ljavax/lang/model/element/Element;)Ljava/lang/String;
            astore 9 /* packageName */
        start local 9 // java.lang.String packageName
        11: .line 122
            aload 9 /* packageName */
            ifnull 13
            aload 9 /* packageName */
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getPackageName:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 127
            goto 60
        13: .line 131
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* element */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.CLASS:Ljavax/lang/model/element/ElementKind;
            if_acmpeq 16
        14: .line 132
            aload 0 /* this */
            aload 7 /* element */
            ldc "Only classes can be annotated with %s."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper: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;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
        15: .line 133
            goto 60
        16: .line 136
      StackMap locals:
      StackMap stack:
            aload 6 /* createWrapper */
            ifnonnull 19
        17: .line 137
            aload 0 /* this */
            aload 7 /* element */
            ldc "Fatal %s.%s not found."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.InstrumentableNode: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;
            aastore
            dup
            iconst_1
            ldc "createWrapper"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
        18: .line 138
            goto 60
        19: .line 141
      StackMap locals:
      StackMap stack:
            aload 7 /* element */
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 5 /* instrumentableNode */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 24
        20: .line 142
            aload 0 /* this */
            aload 7 /* element */
            ldc "Classes annotated with @%s must implement %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper: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;
            aastore
            dup
            iconst_1
        21: .line 143
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.InstrumentableNode: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
        22: .line 142
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
        23: .line 144
            goto 60
        24: .line 146
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* createWrapperFound */
        start local 10 // boolean createWrapperFound
        25: .line 147
            aload 7 /* element */
            invokeinterface javax.lang.model.element.Element.getEnclosedElements:()Ljava/util/List;
            invokestatic javax.lang.model.util.ElementFilter.methodsIn:(Ljava/lang/Iterable;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 30
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement javax.lang.model.element.Element java.util.Iterator java.lang.String int top java.util.Iterator
      StackMap stack:
        26: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 11 /* declaredMethod */
        start local 11 // javax.lang.model.element.ExecutableElement declaredMethod
        27: .line 148
            aload 11 /* declaredMethod */
            aload 6 /* createWrapper */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.signatureEquals:(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/element/ExecutableElement;)Z
            ifeq 30
        28: .line 149
            iconst_1
            istore 10 /* createWrapperFound */
        29: .line 150
            goto 31
        end local 11 // javax.lang.model.element.ExecutableElement declaredMethod
        30: .line 147
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        31: .line 153
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement javax.lang.model.element.Element java.util.Iterator java.lang.String int
      StackMap stack:
            iload 10 /* createWrapperFound */
            ifne 42
        32: .line 154
            aload 0 /* this */
            aload 7 /* element */
            ldc "Classes annotated with @%s must declare/override %s.%s and return a new instance of the generated wrapper class called %s. You may copy the following generated implementation: %n  @Override public %s createWrapper(%s probeNode) {%n    return new %s(this, probeNode);%n  }"
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
        33: .line 159
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper: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;
            aastore
            dup
            iconst_1
        34: .line 160
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.InstrumentableNode: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;
            aastore
            dup
            iconst_2
        35: .line 161
            ldc "createWrapper"
            aastore
            dup
            iconst_3
        36: .line 162
            aload 7 /* element */
            checkcast javax.lang.model.element.TypeElement
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.createWrapperClassName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/String;
            aastore
            dup
            iconst_4
        37: .line 163
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.InstrumentableNode_WrapperNode: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;
            aastore
            dup
            iconst_5
        38: .line 164
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.ProbeNode: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;
            aastore
            dup
            bipush 6
        39: .line 165
            aload 7 /* element */
            checkcast javax.lang.model.element.TypeElement
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.createWrapperClassName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/String;
            aastore
        40: .line 154
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
        41: .line 166
            goto 60
        42: .line 168
      StackMap locals:
      StackMap stack:
            aload 7 /* element */
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node: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
            ifne 47
        43: .line 169
            aload 0 /* this */
            aload 7 /* element */
            ldc "Classes annotated with @%s must extend %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper: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;
            aastore
            dup
            iconst_1
        44: .line 170
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node: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;
            aastore
        45: .line 169
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
        46: .line 171
            goto 60
        end local 10 // boolean createWrapperFound
        47: .line 175
      StackMap locals:
      StackMap stack:
            aload 7 /* element */
            invokeinterface javax.lang.model.element.Element.getAnnotationMirrors:()Ljava/util/List;
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper: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 /* generateWrapperMirror */
        start local 10 // javax.lang.model.element.AnnotationMirror generateWrapperMirror
        48: .line 176
            aload 10 /* generateWrapperMirror */
            ifnonnull 50
        49: .line 177
            goto 60
        50: .line 180
      StackMap locals: javax.lang.model.element.AnnotationMirror
      StackMap stack:
            aload 0 /* this */
            aload 3 /* context */
            aload 7 /* element */
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.generateWrapperOnly:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/Element;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 11 /* unit */
        start local 11 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement unit
        51: .line 182
            aload 11 /* unit */
            ifnonnull 53
        52: .line 183
            goto 60
        53: .line 185
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeTypeElement
      StackMap stack:
            aload 3 /* 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 12 /* overrideType */
        start local 12 // javax.lang.model.type.DeclaredType overrideType
        54: .line 186
            aload 11 /* unit */
            new com.oracle.truffle.dsl.processor.java.transform.GenerateOverrideVisitor
            dup
            aload 12 /* 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
        55: .line 187
            aload 11 /* unit */
            new com.oracle.truffle.dsl.processor.java.transform.FixWarningsVisitor
            dup
            aload 7 /* element */
            aload 12 /* 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
        56: .line 188
            aload 11 /* unit */
            new com.oracle.truffle.dsl.processor.CodeWriter
            dup
            aload 3 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
            aload 7 /* 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
        end local 12 // javax.lang.model.type.DeclaredType overrideType
        end local 11 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement unit
        end local 10 // javax.lang.model.element.AnnotationMirror generateWrapperMirror
        57: .line 189
            goto 60
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement javax.lang.model.element.Element java.util.Iterator java.lang.String
      StackMap stack: java.lang.Throwable
        58: astore 10 /* e */
        start local 10 // java.lang.Throwable e
        59: .line 192
            aload 0 /* this */
            aload 10 /* e */
            aload 7 /* element */
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.handleThrowable:(Ljava/lang/Throwable;Ljavax/lang/model/element/Element;)V
        end local 10 // java.lang.Throwable e
        end local 9 // java.lang.String packageName
        end local 7 // javax.lang.model.element.Element element
        60: .line 117
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.DeclaredType javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        61: .line 198
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.leave:()V
        62: .line 196
            iconst_1
            ireturn
        end local 6 // javax.lang.model.element.ExecutableElement createWrapper
        end local 5 // javax.lang.model.type.DeclaredType instrumentableNode
        end local 4 // com.oracle.truffle.dsl.processor.TruffleTypes types
        63: .line 197
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor java.util.Set javax.annotation.processing.RoundEnvironment com.oracle.truffle.dsl.processor.ProcessorContext
      StackMap stack: java.lang.Throwable
            astore 13
        64: .line 198
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.leave:()V
        65: .line 199
            aload 13
            athrow
        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.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   66     0                   this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;
            0   66     1            annotations  Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;
            0   66     2               roundEnv  Ljavax/annotation/processing/RoundEnvironment;
            3   66     3                context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            4   63     4                  types  Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            5   63     5     instrumentableNode  Ljavax/lang/model/type/DeclaredType;
            6   63     6          createWrapper  Ljavax/lang/model/element/ExecutableElement;
            8   60     7                element  Ljavax/lang/model/element/Element;
           11   60     9            packageName  Ljava/lang/String;
           25   47    10     createWrapperFound  Z
           27   30    11         declaredMethod  Ljavax/lang/model/element/ExecutableElement;
           48   57    10  generateWrapperMirror  Ljavax/lang/model/element/AnnotationMirror;
           51   57    11                   unit  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
           54   57    12           overrideType  Ljavax/lang/model/type/DeclaredType;
           59   60    10                      e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          13    15      58  Class java.lang.Throwable
          16    18      58  Class java.lang.Throwable
          19    23      58  Class java.lang.Throwable
          24    41      58  Class java.lang.Throwable
          42    46      58  Class java.lang.Throwable
          47    49      58  Class java.lang.Throwable
          50    52      58  Class java.lang.Throwable
          53    57      58  Class java.lang.Throwable
           3    61      63  any
    Signature: (Ljava/util/Set<+Ljavax/lang/model/element/TypeElement;>;Ljavax/annotation/processing/RoundEnvironment;)Z
    MethodParameters:
             Name  Flags
      annotations  
      roundEnv     

  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.InstrumentableProcessor this
        start local 1 // java.lang.Throwable t
        start local 2 // javax.lang.model.element.Element e
         0: .line 203
            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 204
            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 205
            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.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;
            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 com.oracle.truffle.dsl.processor.java.model.CodeTypeElement generateWrapperOnly(com.oracle.truffle.dsl.processor.ProcessorContext, javax.lang.model.element.Element);
    descriptor: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/Element;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
        start local 1 // com.oracle.truffle.dsl.processor.ProcessorContext context
        start local 2 // javax.lang.model.element.Element e
         0: .line 208
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* e */
            iconst_1
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.generateWrapper:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/Element;Z)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 3 /* wrapper */
        start local 3 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement wrapper
         1: .line 209
            aload 3 /* wrapper */
            ifnonnull 3
         2: .line 210
            aconst_null
            areturn
         3: .line 212
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeTypeElement
      StackMap stack:
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.assertNoErrorExpected:(Ljavax/lang/model/element/Element;)V
         4: .line 213
            aload 3 /* wrapper */
            areturn
        end local 3 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement wrapper
        end local 2 // javax.lang.model.element.Element e
        end local 1 // com.oracle.truffle.dsl.processor.ProcessorContext context
        end local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;
            0    5     1  context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            0    5     2        e  Ljavax/lang/model/element/Element;
            1    5     3  wrapper  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
    MethodParameters:
         Name  Flags
      context  
      e        

  private static java.lang.String createWrapperClassName(javax.lang.model.element.TypeElement);
    descriptor: (Ljavax/lang/model/element/TypeElement;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.lang.model.element.TypeElement sourceType
         0: .line 217
            new java.lang.StringBuilder
            dup
            aload 0 /* sourceType */
            invokeinterface javax.lang.model.element.TypeElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Wrapper"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // javax.lang.model.element.TypeElement sourceType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  sourceType  Ljavax/lang/model/element/TypeElement;
    MethodParameters:
            Name  Flags
      sourceType  

  private static boolean hasUnexpectedResult(com.oracle.truffle.dsl.processor.ProcessorContext, javax.lang.model.element.ExecutableElement);
    descriptor: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.ProcessorContext context
        start local 1 // javax.lang.model.element.ExecutableElement element
         0: .line 221
            aload 0 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.UnexpectedResultException:Ljavax/lang/model/type/DeclaredType;
            astore 2 /* unexpectedResult */
        start local 2 // javax.lang.model.type.TypeMirror unexpectedResult
         1: .line 222
            aload 1 /* element */
            invokeinterface javax.lang.model.element.ExecutableElement.getThrownTypes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.ExecutableElement javax.lang.model.type.TypeMirror 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 223
            aload 3 /* thrownType */
            aload 2 /* unexpectedResult */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 5
         4: .line 224
            iconst_1
            ireturn
        end local 3 // javax.lang.model.type.TypeMirror thrownType
         5: .line 222
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 227
            iconst_0
            ireturn
        end local 2 // javax.lang.model.type.TypeMirror unexpectedResult
        end local 1 // javax.lang.model.element.ExecutableElement element
        end local 0 // com.oracle.truffle.dsl.processor.ProcessorContext context
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0           context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            0    7     1           element  Ljavax/lang/model/element/ExecutableElement;
            1    7     2  unexpectedResult  Ljavax/lang/model/type/TypeMirror;
            3    5     3        thrownType  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
         Name  Flags
      context  
      element  

  private com.oracle.truffle.dsl.processor.java.model.CodeTypeElement generateWrapper(com.oracle.truffle.dsl.processor.ProcessorContext, javax.lang.model.element.Element, boolean);
    descriptor: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/Element;Z)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=35, args_size=4
        start local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
        start local 1 // com.oracle.truffle.dsl.processor.ProcessorContext context
        start local 2 // javax.lang.model.element.Element e
        start local 3 // boolean topLevelClass
         0: .line 232
            aload 2 /* e */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.isClass:()Z
            ifne 2
         1: .line 233
            aconst_null
            areturn
         2: .line 236
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            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 5
         3: .line 237
            aload 0 /* this */
            aload 2 /* e */
            ldc "Class must not be private to generate a wrapper."
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
         4: .line 238
            aconst_null
            areturn
         5: .line 241
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.FINAL:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 242
            aload 0 /* this */
            aload 2 /* e */
            ldc "Class must not be final to generate a wrapper."
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
         7: .line 243
            aconst_null
            areturn
         8: .line 245
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface javax.lang.model.element.Element.getEnclosingElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.PACKAGE:Ljavax/lang/model/element/ElementKind;
            if_acmpeq 11
            aload 2 /* e */
            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 11
         9: .line 246
            aload 0 /* this */
            aload 2 /* e */
            ldc "Inner class must be static to generate a wrapper."
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
        10: .line 247
            aconst_null
            areturn
        11: .line 249
      StackMap locals:
      StackMap stack:
            aload 1 /* 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
        12: .line 251
            aload 2 /* e */
            checkcast javax.lang.model.element.TypeElement
            astore 5 /* sourceType */
        start local 5 // javax.lang.model.element.TypeElement sourceType
        13: .line 253
            aconst_null
            astore 6 /* constructor */
        start local 6 // javax.lang.model.element.ExecutableElement constructor
        14: .line 254
            aload 2 /* e */
            invokeinterface javax.lang.model.element.Element.getEnclosedElements:()Ljava/util/List;
            invokestatic javax.lang.model.util.ElementFilter.constructorsIn:(Ljava/lang/Iterable;)Ljava/util/List;
            astore 7 /* constructors */
        start local 7 // java.util.List constructors
        15: .line 255
            aload 7 /* constructors */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 17
        16: .line 257
            aload 7 /* constructors */
            new com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            dup
            iconst_1
            anewarray javax.lang.model.element.Modifier
            dup
            iconst_0
            getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            aconst_null
            aload 2 /* e */
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            iconst_0
            anewarray com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;[Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 261
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List
      StackMap stack:
            aload 7 /* constructors */
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 8 /* iterator */
        start local 8 // java.util.ListIterator iterator
        18: goto 27
        19: .line 262
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 8 /* iterator */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 9 /* c */
        start local 9 // javax.lang.model.element.ExecutableElement c
        20: .line 263
            aload 9 /* c */
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getVisibility:(Ljava/util/Set;)Ljavax/lang/model/element/Modifier;
            astore 10 /* modifier */
        start local 10 // javax.lang.model.element.Modifier modifier
        21: .line 264
            aload 10 /* modifier */
            getstatic javax.lang.model.element.Modifier.PRIVATE:Ljavax/lang/model/element/Modifier;
            if_acmpne 24
        22: .line 265
            aload 8 /* iterator */
            invokeinterface java.util.ListIterator.remove:()V
        23: .line 266
            goto 27
        24: .line 268
      StackMap locals: javax.lang.model.element.ExecutableElement javax.lang.model.element.Modifier
      StackMap stack:
            aload 9 /* c */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 27
        25: .line 269
            aload 9 /* c */
            astore 6 /* constructor */
        26: .line 270
            goto 28
        end local 10 // javax.lang.model.element.Modifier modifier
        end local 9 // javax.lang.model.element.ExecutableElement c
        27: .line 261
      StackMap locals:
      StackMap stack:
            aload 8 /* iterator */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 19
        end local 8 // java.util.ListIterator iterator
        28: .line 275
      StackMap locals:
      StackMap stack:
            aload 6 /* constructor */
            ifnonnull 36
        29: .line 276
            aload 7 /* constructors */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 35
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List top java.util.Iterator
      StackMap stack:
        30: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 8 /* c */
        start local 8 // javax.lang.model.element.ExecutableElement c
        31: .line 277
            aload 8 /* c */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 10 /* firstParameter */
        start local 10 // javax.lang.model.element.VariableElement firstParameter
        32: .line 278
            aload 10 /* firstParameter */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 5 /* sourceType */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 35
        33: .line 279
            aload 8 /* c */
            astore 6 /* constructor */
        34: .line 280
            goto 36
        end local 10 // javax.lang.model.element.VariableElement firstParameter
        end local 8 // javax.lang.model.element.ExecutableElement c
        35: .line 276
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        36: .line 286
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List
      StackMap stack:
            aload 6 /* constructor */
            ifnonnull 44
        37: .line 287
            aload 7 /* constructors */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 43
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List top java.util.Iterator
      StackMap stack:
        38: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 8 /* c */
        start local 8 // javax.lang.model.element.ExecutableElement c
        39: .line 288
            aload 8 /* c */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 10 /* firstParameter */
        start local 10 // javax.lang.model.element.VariableElement firstParameter
        40: .line 289
            aload 10 /* firstParameter */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.SourceSection:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 43
        41: .line 290
            aload 8 /* c */
            astore 6 /* constructor */
        42: .line 291
            goto 44
        end local 10 // javax.lang.model.element.VariableElement firstParameter
        end local 8 // javax.lang.model.element.ExecutableElement c
        43: .line 287
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        44: .line 296
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List
      StackMap stack:
            aload 6 /* constructor */
            ifnonnull 47
        45: .line 297
            aload 0 /* this */
            aload 5 /* sourceType */
            ldc "No suiteable constructor found for wrapper factory generation. At least one default or copy constructor must be visible."
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
        46: .line 298
            aconst_null
            areturn
        47: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* 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 8 /* pack */
        start local 8 // javax.lang.model.element.PackageElement pack
        48: .line 304
            aload 5 /* sourceType */
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.createWrapperClassName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/String;
            astore 10 /* wrapperClassName */
        start local 10 // java.lang.String wrapperClassName
        49: .line 305
            iload 3 /* topLevelClass */
            ifeq 52
        50: .line 306
            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 9 /* typeModifiers */
        start local 9 // java.util.Set typeModifiers
        51: .line 307
            goto 54
        end local 9 // java.util.Set typeModifiers
        52: .line 308
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement top java.lang.String
      StackMap stack:
            iconst_2
            anewarray javax.lang.model.element.Modifier
            dup
            iconst_0
            getstatic javax.lang.model.element.Modifier.PRIVATE:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_1
            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 9 /* typeModifiers */
        start local 9 // java.util.Set typeModifiers
        53: .line 310
            new java.lang.StringBuilder
            dup
            aload 10 /* wrapperClassName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* wrapperClassName */
        54: .line 313
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String
      StackMap stack:
            new com.oracle.truffle.dsl.processor.java.model.CodeTypeElement
            dup
            aload 9 /* typeModifiers */
            getstatic javax.lang.model.element.ElementKind.CLASS:Ljavax/lang/model/element/ElementKind;
            aload 8 /* pack */
            aload 10 /* wrapperClassName */
            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 11 /* wrapperType */
        start local 11 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement wrapperType
        55: .line 314
            aload 5 /* sourceType */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 12 /* resolvedSuperType */
        start local 12 // javax.lang.model.type.TypeMirror resolvedSuperType
        56: .line 315
            aload 11 /* wrapperType */
            aload 12 /* resolvedSuperType */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.setSuperClass:(Ljavax/lang/model/type/TypeMirror;)V
        57: .line 316
            aload 11 /* wrapperType */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.getImplements:()Ljava/util/List;
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.InstrumentableNode_WrapperNode:Ljavax/lang/model/type/DeclaredType;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        58: .line 318
            aload 1 /* context */
            aload 11 /* wrapperType */
            aload 5 /* sourceType */
            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
        59: .line 320
            aload 11 /* wrapperType */
            aload 1 /* context */
            aload 5 /* sourceType */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            ldc "delegateNode"
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.createNodeChild:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        60: .line 321
            aload 11 /* wrapperType */
            aload 1 /* context */
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.ProbeNode:Ljavax/lang/model/type/DeclaredType;
            ldc "probeNode"
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.createNodeChild:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        61: .line 324
            iload 3 /* topLevelClass */
            ifeq 64
        62: .line 326
            iconst_0
            anewarray javax.lang.model.element.Modifier
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            astore 13 /* constructorModifiers */
        start local 13 // java.util.Set constructorModifiers
        63: .line 327
            goto 65
        end local 13 // java.util.Set constructorModifiers
        64: .line 328
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror
      StackMap stack:
            iconst_1
            anewarray javax.lang.model.element.Modifier
            dup
            iconst_0
            getstatic javax.lang.model.element.Modifier.PRIVATE:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            astore 13 /* constructorModifiers */
        start local 13 // java.util.Set constructorModifiers
        65: .line 331
      StackMap locals: java.util.Set
      StackMap stack:
            aload 13 /* constructorModifiers */
            aload 11 /* wrapperType */
            aload 6 /* constructor */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createConstructorUsingFields:(Ljava/util/Set;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 14 /* wrappedConstructor */
        start local 14 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement wrappedConstructor
        66: .line 332
            aload 11 /* wrapperType */
            aload 14 /* wrappedConstructor */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        67: .line 335
            aload 11 /* wrapperType */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.getFields:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 16
            goto 74
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
        68: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 15 /* field */
        start local 15 // javax.lang.model.element.VariableElement field
        69: .line 336
            new com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            dup
            iconst_1
            anewarray javax.lang.model.element.Modifier
            dup
            iconst_0
            getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            aload 15 /* field */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            new java.lang.StringBuilder
            dup
            ldc "get"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        70: .line 337
            aload 15 /* field */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.firstLetterUpperCase:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        71: .line 336
            iconst_0
            anewarray com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;[Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;)V
            astore 17 /* getter */
        start local 17 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getter
        72: .line 338
            aload 17 /* getter */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 15 /* field */
            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.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
        73: .line 339
            aload 11 /* wrapperType */
            aload 17 /* getter */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        end local 17 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getter
        end local 15 // javax.lang.model.element.VariableElement field
        74: .line 335
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 68
        75: .line 342
            aload 5 /* sourceType */
            ldc "getCost"
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.isOverrideableOrUndeclared:(Ljavax/lang/model/element/TypeElement;Ljava/lang/String;)Z
            ifeq 80
        76: .line 343
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.NodeCost:Ljavax/lang/model/type/DeclaredType;
            astore 15 /* returnType */
        start local 15 // javax.lang.model.type.TypeMirror returnType
        77: .line 344
            new com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            dup
            iconst_1
            anewarray javax.lang.model.element.Modifier
            dup
            iconst_0
            getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            aload 15 /* returnType */
            ldc "getCost"
            iconst_0
            anewarray com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;[Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;)V
            astore 16 /* getInstrumentationTags */
        start local 16 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getInstrumentationTags
        78: .line 345
            aload 16 /* getInstrumentationTags */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 15 /* returnType */
            ldc "NONE"
            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
        79: .line 346
            aload 11 /* wrapperType */
            aload 16 /* getInstrumentationTags */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        end local 16 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getInstrumentationTags
        end local 15 // javax.lang.model.type.TypeMirror returnType
        80: .line 349
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 15 /* wrappedMethods */
        start local 15 // java.util.List wrappedMethods
        81: .line 350
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 16 /* wrappedExecuteMethods */
        start local 16 // java.util.List wrappedExecuteMethods
        82: .line 351
            aload 1 /* 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.getAllMembers:(Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
            astore 17 /* elementList */
        start local 17 // java.util.List elementList
        83: .line 353
            aconst_null
            astore 18 /* genericExecuteDelegate */
        start local 18 // javax.lang.model.element.ExecutableElement genericExecuteDelegate
        84: .line 354
            aload 17 /* elementList */
            invokestatic javax.lang.model.util.ElementFilter.methodsIn:(Ljava/lang/Iterable;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 20
            goto 95
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
        85: aload 20
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 19 /* method */
        start local 19 // javax.lang.model.element.ExecutableElement method
        86: .line 355
            aload 19 /* method */
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.isExecuteMethod:(Ljavax/lang/model/element/ExecutableElement;)Z
            ifeq 95
            aload 19 /* method */
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.isOverridable:(Ljavax/lang/model/element/ExecutableElement;)Z
            ifeq 95
        87: .line 356
            aload 19 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 88
            aconst_null
            goto 89
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement java.util.Iterator
      StackMap stack:
        88: aload 19 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
      StackMap locals:
      StackMap stack: javax.lang.model.element.VariableElement
        89: astore 21 /* firstParam */
        start local 21 // javax.lang.model.element.VariableElement firstParam
        90: .line 357
            iload 3 /* topLevelClass */
            ifeq 93
            aload 21 /* firstParam */
            ifnull 91
            aload 21 /* firstParam */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.VirtualFrame: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
            ifne 93
        91: .line 358
      StackMap locals: javax.lang.model.element.VariableElement
      StackMap stack:
            aload 0 /* this */
            aload 2 /* e */
            ldc "Wrapped execute method %s must have VirtualFrame as first parameter."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 19 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
        92: .line 359
            aconst_null
            areturn
        93: .line 361
      StackMap locals:
      StackMap stack:
            aload 19 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isObject:(Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 95
            aload 19 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 95
            aload 18 /* genericExecuteDelegate */
            ifnonnull 95
        94: .line 362
            aload 19 /* method */
            astore 18 /* genericExecuteDelegate */
        end local 21 // javax.lang.model.element.VariableElement firstParam
        end local 19 // javax.lang.model.element.ExecutableElement method
        95: .line 354
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 85
        96: .line 367
            aload 17 /* elementList */
            invokestatic javax.lang.model.util.ElementFilter.methodsIn:(Ljava/lang/Iterable;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 20
            goto 107
      StackMap locals:
      StackMap stack:
        97: aload 20
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 19 /* method */
        start local 19 // javax.lang.model.element.ExecutableElement method
        98: .line 368
            aload 19 /* method */
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.isOverridable:(Ljavax/lang/model/element/ExecutableElement;)Z
            ifne 100
        99: .line 369
            goto 107
       100: .line 372
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement java.util.Iterator
      StackMap stack:
            aload 19 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 21 /* methodName */
        start local 21 // java.lang.String methodName
       101: .line 373
            aload 21 /* methodName */
            ldc "execute"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 104
       102: .line 374
            aload 16 /* wrappedExecuteMethods */
            aload 19 /* method */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       103: .line 375
            goto 107
       104: .line 376
      StackMap locals: java.lang.String
      StackMap stack:
            aload 19 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.ABSTRACT:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 107
            aload 21 /* methodName */
            ldc "getSourceSection"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 107
       105: .line 377
            aload 21 /* methodName */
            ldc "getCost"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 107
            aload 1 /* context */
            aload 19 /* method */
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.hasUnexpectedResult:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/ExecutableElement;)Z
            ifne 107
       106: .line 378
            aload 15 /* wrappedMethods */
            aload 19 /* method */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 21 // java.lang.String methodName
        end local 19 // javax.lang.model.element.ExecutableElement method
       107: .line 367
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 97
       108: .line 383
            aconst_null
            astore 19 /* incomingConverterMethod */
        start local 19 // javax.lang.model.element.ExecutableElement incomingConverterMethod
       109: .line 384
            aconst_null
            astore 20 /* outgoingConverterMethod */
        start local 20 // javax.lang.model.element.ExecutableElement outgoingConverterMethod
       110: .line 386
            aload 17 /* elementList */
            invokestatic javax.lang.model.util.ElementFilter.methodsIn:(Ljava/lang/Iterable;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 22
            goto 128
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
       111: aload 22
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 21 /* method */
        start local 21 // javax.lang.model.element.ExecutableElement method
       112: .line 387
            aload 21 /* method */
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper_IncomingConverter: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 23 /* incomingConverter */
        start local 23 // javax.lang.model.element.AnnotationMirror incomingConverter
       113: .line 388
            aload 21 /* method */
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper_OutgoingConverter: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 24 /* outgoingConverter */
        start local 24 // javax.lang.model.element.AnnotationMirror outgoingConverter
       114: .line 390
            aload 23 /* incomingConverter */
            ifnull 121
       115: .line 391
            aload 19 /* incomingConverterMethod */
            ifnull 118
       116: .line 392
            aload 0 /* this */
            aload 5 /* sourceType */
            ldc "Only one @%s method allowed, found multiple."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper_IncomingConverter: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;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
       117: .line 393
            aconst_null
            areturn
       118: .line 395
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationMirror
      StackMap stack:
            aload 0 /* this */
            aload 21 /* method */
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper_IncomingConverter:Ljavax/lang/model/type/DeclaredType;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.verifyConverter:(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/DeclaredType;)Z
            ifne 120
       119: .line 396
            goto 128
       120: .line 398
      StackMap locals:
      StackMap stack:
            aload 21 /* method */
            astore 19 /* incomingConverterMethod */
       121: .line 401
      StackMap locals:
      StackMap stack:
            aload 24 /* outgoingConverter */
            ifnull 128
       122: .line 402
            aload 20 /* outgoingConverterMethod */
            ifnull 125
       123: .line 403
            aload 0 /* this */
            aload 5 /* sourceType */
            ldc "Only one @%s method allowed, found multiple."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper_OutgoingConverter: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;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
       124: .line 404
            aconst_null
            areturn
       125: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 21 /* method */
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.GenerateWrapper_OutgoingConverter:Ljavax/lang/model/type/DeclaredType;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.verifyConverter:(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/DeclaredType;)Z
            ifne 127
       126: .line 407
            goto 128
       127: .line 409
      StackMap locals:
      StackMap stack:
            aload 21 /* method */
            astore 20 /* outgoingConverterMethod */
        end local 24 // javax.lang.model.element.AnnotationMirror outgoingConverter
        end local 23 // javax.lang.model.element.AnnotationMirror incomingConverter
        end local 21 // javax.lang.model.element.ExecutableElement method
       128: .line 386
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
            aload 22
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 111
       129: .line 413
            aload 16 /* wrappedExecuteMethods */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 132
       130: .line 414
            aload 0 /* this */
            aload 5 /* sourceType */
            ldc "No methods starting with name execute found to wrap."
            iconst_0
            anewarray java.lang.Object
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
       131: .line 415
            aconst_null
            areturn
       132: .line 418
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement
      StackMap stack:
            aload 16 /* wrappedExecuteMethods */
            new com.oracle.truffle.dsl.processor.InstrumentableProcessor$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.dsl.processor.InstrumentableProcessor$1.<init>:(Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;)V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
       133: .line 424
            aload 16 /* wrappedExecuteMethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 22
            goto 254
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
       134: aload 22
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 21 /* method */
        start local 21 // javax.lang.model.element.ExecutableElement method
       135: .line 425
            aload 21 /* method */
            astore 23 /* executeMethod */
        start local 23 // javax.lang.model.element.ExecutableElement executeMethod
       136: .line 426
            aload 23 /* executeMethod */
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 24 /* wrappedExecute */
        start local 24 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement wrappedExecute
       137: .line 427
            aload 24 /* wrappedExecute */
            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
       138: .line 428
            aload 24 /* wrappedExecute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.DEFAULT:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
       139: .line 429
            aload 24 /* wrappedExecute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getAnnotationMirrors:()Ljava/util/List;
            invokeinterface java.util.List.clear:()V
       140: .line 431
            ldc "null"
            astore 25 /* frameParameterName */
        start local 25 // java.lang.String frameParameterName
       141: .line 432
            aload 24 /* wrappedExecute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 27
            goto 146
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.lang.String top java.util.Iterator
      StackMap stack:
       142: aload 27
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 26 /* parameter */
        start local 26 // javax.lang.model.element.VariableElement parameter
       143: .line 433
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.VirtualFrame:Ljavax/lang/model/type/DeclaredType;
            aload 26 /* parameter */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 146
       144: .line 434
            aload 26 /* parameter */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 25 /* frameParameterName */
       145: .line 435
            goto 147
        end local 26 // javax.lang.model.element.VariableElement parameter
       146: .line 432
      StackMap locals:
      StackMap stack:
            aload 27
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 142
       147: .line 439
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.lang.String
      StackMap stack:
            aload 24 /* wrappedExecute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 26 /* builder */
        start local 26 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
       148: .line 440
            aload 23 /* executeMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            astore 27 /* returnTypeMirror */
        start local 27 // javax.lang.model.type.TypeMirror returnTypeMirror
       149: .line 441
            aload 27 /* returnTypeMirror */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isVoid:(Ljavax/lang/model/type/TypeMirror;)Z
            istore 28 /* executeReturnsVoid */
        start local 28 // boolean executeReturnsVoid
       150: .line 442
            iload 28 /* executeReturnsVoid */
            ifeq 154
            aload 18 /* genericExecuteDelegate */
            ifnull 154
            aload 23 /* executeMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 18 /* genericExecuteDelegate */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmpne 154
       151: .line 443
            aload 18 /* genericExecuteDelegate */
            astore 23 /* executeMethod */
       152: .line 444
            aload 18 /* genericExecuteDelegate */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            astore 27 /* returnTypeMirror */
       153: .line 445
            iconst_0
            istore 28 /* executeReturnsVoid */
       154: .line 449
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.type.TypeMirror int
      StackMap stack:
            iload 28 /* executeReturnsVoid */
            ifne 158
       155: .line 450
            ldc "returnValue"
            astore 29 /* returnName */
        start local 29 // java.lang.String returnName
       156: .line 451
            aload 26 /* builder */
            aload 27 /* returnTypeMirror */
            aload 29 /* returnName */
            aconst_null
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       157: .line 452
            goto 159
        end local 29 // java.lang.String returnName
       158: .line 453
      StackMap locals:
      StackMap stack:
            ldc "null"
            astore 29 /* returnName */
        start local 29 // java.lang.String returnName
       159: .line 455
      StackMap locals: java.lang.String
      StackMap stack:
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startFor:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()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.end:()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
       160: .line 456
            aload 26 /* builder */
            ldc "boolean"
            ldc "wasOnReturnExecuted"
            ldc "false"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       161: .line 457
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startTryBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       162: .line 458
            aload 1 /* context */
            aload 24 /* wrappedExecute */
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.hasUnexpectedResult:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/ExecutableElement;)Z
            istore 30 /* hasUnexpectedResult */
        start local 30 // boolean hasUnexpectedResult
       163: .line 459
            iload 30 /* hasUnexpectedResult */
            ifeq 165
       164: .line 460
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startTryBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       165: .line 463
      StackMap locals: int
      StackMap stack:
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "probeNode"
            ldc "onEnter"
            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 25 /* frameParameterName */
            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.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       166: .line 465
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.create:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 31 /* callDelegate */
        start local 31 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder callDelegate
       167: .line 466
            aload 31 /* callDelegate */
            ldc "delegateNode"
            aload 23 /* executeMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.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.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       168: .line 467
            aload 24 /* wrappedExecute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 33
            goto 171
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.type.TypeMirror int java.lang.String int com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder top java.util.Iterator
      StackMap stack:
       169: aload 33
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 32 /* parameter */
        start local 32 // javax.lang.model.element.VariableElement parameter
       170: .line 468
            aload 31 /* callDelegate */
            aload 32 /* parameter */
            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.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 32 // javax.lang.model.element.VariableElement parameter
       171: .line 467
      StackMap locals:
      StackMap stack:
            aload 33
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 169
       172: .line 470
            aload 31 /* callDelegate */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       173: .line 471
            iload 28 /* executeReturnsVoid */
            ifeq 176
       174: .line 472
            aload 26 /* builder */
            aload 31 /* callDelegate */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.build:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       175: .line 473
            goto 177
       176: .line 474
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement java.util.Iterator javax.lang.model.element.ExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.type.TypeMirror int java.lang.String int com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder
      StackMap stack:
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 29 /* returnName */
            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;
            aload 31 /* callDelegate */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.build:()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
       177: .line 477
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "wasOnReturnExecuted"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.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
       178: .line 479
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "probeNode"
            ldc "onReturnValue"
            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 25 /* frameParameterName */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       179: .line 480
            aload 20 /* outgoingConverterMethod */
            ifnull 180
            iload 28 /* executeReturnsVoid */
            ifeq 182
       180: .line 481
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            aload 29 /* returnName */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       181: .line 482
            goto 183
       182: .line 483
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            aload 20 /* outgoingConverterMethod */
            aload 25 /* frameParameterName */
            aload 29 /* returnName */
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.singleString:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.createCallConverter:(Ljavax/lang/model/element/ExecutableElement;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)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
       183: .line 485
      StackMap locals:
      StackMap stack:
            aload 26 /* 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.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       184: .line 487
            aload 26 /* builder */
            ldc "break"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       185: .line 488
            iload 30 /* hasUnexpectedResult */
            ifeq 195
       186: .line 489
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.UnexpectedResultException:Ljavax/lang/model/type/DeclaredType;
            ldc "e"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCatchBlock:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       187: .line 490
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "wasOnReturnExecuted"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.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
       188: .line 491
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "probeNode"
            ldc "onReturnValue"
            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 25 /* frameParameterName */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       189: .line 492
            aload 20 /* outgoingConverterMethod */
            ifnull 190
            iload 28 /* executeReturnsVoid */
            ifeq 192
       190: .line 493
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            ldc "e.getResult()"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       191: .line 494
            goto 193
       192: .line 495
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            aload 20 /* outgoingConverterMethod */
            aload 25 /* frameParameterName */
            ldc "e.getResult()"
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.singleString:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.createCallConverter:(Ljavax/lang/model/element/ExecutableElement;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)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
       193: .line 497
      StackMap locals:
      StackMap stack:
            aload 26 /* 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.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       194: .line 498
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startThrow:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "e"
            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.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       195: .line 500
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 1 /* context */
            ldc Ljava/lang/Throwable;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "t"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCatchBlock:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       196: .line 501
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.create:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 32 /* callExOrUnwind */
        start local 32 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder callExOrUnwind
       197: .line 502
            aload 32 /* callExOrUnwind */
            ldc "probeNode"
            ldc "onReturnExceptionalOrUnwind"
            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 25 /* frameParameterName */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "t"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "wasOnReturnExecuted"
            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
       198: .line 503
            aload 26 /* builder */
            ldc "Object"
            ldc "result"
            aload 32 /* callExOrUnwind */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.build:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       199: .line 504
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "result == "
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "ProbeNode.UNWIND_ACTION_REENTER"
            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
       200: .line 505
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       201: .line 506
            aload 26 /* builder */
            ldc "continue"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       202: .line 507
            aload 24 /* wrappedExecute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isVoid:(Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 208
       203: .line 508
            aload 26 /* 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.startElseIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       204: .line 509
            aload 26 /* builder */
            ldc "result != null"
            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
       205: .line 510
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       206: .line 511
            aload 26 /* builder */
            ldc "break"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       207: .line 512
            goto 248
       208: .line 513
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder
      StackMap stack:
            ldc "java.lang.Object"
            aload 27 /* returnTypeMirror */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getQualifiedName:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 209
            aload 27 /* returnTypeMirror */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.ARRAY:Ljavax/lang/model/type/TypeKind;
            if_acmpeq 209
            iconst_1
            goto 210
      StackMap locals:
      StackMap stack:
       209: iconst_0
      StackMap locals:
      StackMap stack: int
       210: istore 33 /* objectReturnType */
        start local 33 // boolean objectReturnType
       211: .line 514
            aload 1 /* context */
            aload 24 /* wrappedExecute */
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.hasUnexpectedResult:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/element/ExecutableElement;)Z
            istore 34 /* throwsUnexpectedResult */
        start local 34 // boolean throwsUnexpectedResult
       212: .line 515
            iload 33 /* objectReturnType */
            ifne 213
            iload 34 /* throwsUnexpectedResult */
            ifne 226
       213: .line 516
      StackMap locals: int int
      StackMap stack:
            aload 26 /* 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.startElseIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       214: .line 517
            aload 26 /* builder */
            ldc "result != null"
            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
       215: .line 518
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       216: .line 519
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 29 /* returnName */
            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;
            pop
       217: .line 520
            iload 33 /* objectReturnType */
            ifne 219
       218: .line 521
            aload 26 /* builder */
            ldc "("
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 27 /* returnTypeMirror */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getSimpleName:(Ljavax/lang/model/type/TypeMirror;)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;
            pop
       219: .line 523
      StackMap locals:
      StackMap stack:
            aload 19 /* incomingConverterMethod */
            ifnonnull 222
       220: .line 524
            aload 26 /* builder */
            ldc "result"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       221: .line 525
            goto 223
       222: .line 526
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            aload 19 /* incomingConverterMethod */
            aload 25 /* frameParameterName */
            ldc "result"
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.singleString:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.createCallConverter:(Ljavax/lang/model/element/ExecutableElement;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)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
       223: .line 528
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       224: .line 529
            aload 26 /* builder */
            ldc "break"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       225: .line 530
            goto 248
       226: .line 531
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       227: .line 533
            aload 19 /* incomingConverterMethod */
            ifnull 234
       228: .line 534
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "result != null"
            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
       229: .line 535
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       230: .line 536
            aload 26 /* builder */
            ldc "result = "
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       231: .line 537
            aload 26 /* builder */
            aload 19 /* incomingConverterMethod */
            aload 25 /* frameParameterName */
            ldc "result"
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.singleString:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.createCallConverter:(Ljavax/lang/model/element/ExecutableElement;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)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
       232: .line 538
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       233: .line 539
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       234: .line 542
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       235: .line 543
            aload 26 /* builder */
            ldc "result"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 27 /* returnTypeMirror */
            aload 1 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            invokestatic com.oracle.truffle.dsl.processor.InstrumentableProcessor.boxed:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/util/Types;)Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.instanceOf:(Ljavax/lang/model/type/TypeMirror;)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
       236: .line 544
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       237: .line 546
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 29 /* returnName */
            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;
            pop
       238: .line 547
            aload 26 /* builder */
            ldc "("
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 27 /* returnTypeMirror */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getSimpleName:(Ljavax/lang/model/type/TypeMirror;)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;
            pop
       239: .line 548
            aload 26 /* builder */
            ldc "result"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       240: .line 549
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       241: .line 550
            aload 26 /* builder */
            ldc "break"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       242: .line 551
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       243: .line 552
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startElseIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "result != null"
            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
       244: .line 553
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       245: .line 554
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startThrow:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 4 /* types */
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.UnexpectedResultException:Ljavax/lang/model/type/DeclaredType;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       246: .line 555
            aload 26 /* builder */
            ldc "result"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       247: .line 556
            aload 26 /* 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.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 34 // boolean throwsUnexpectedResult
        end local 33 // boolean objectReturnType
       248: .line 559
      StackMap locals:
      StackMap stack:
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       249: .line 560
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startThrow:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "t"
            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
       250: .line 561
            aload 26 /* builder */
            iconst_2
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:(I)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       251: .line 562
            aload 24 /* wrappedExecute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isVoid:(Ljavax/lang/model/type/TypeMirror;)Z
            ifne 253
       252: .line 563
            aload 26 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 29 /* returnName */
            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
       253: .line 566
      StackMap locals:
      StackMap stack:
            aload 11 /* wrapperType */
            aload 24 /* wrappedExecute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        end local 32 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder callExOrUnwind
        end local 31 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder callDelegate
        end local 30 // boolean hasUnexpectedResult
        end local 29 // java.lang.String returnName
        end local 28 // boolean executeReturnsVoid
        end local 27 // javax.lang.model.type.TypeMirror returnTypeMirror
        end local 26 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        end local 25 // java.lang.String frameParameterName
        end local 24 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement wrappedExecute
        end local 23 // javax.lang.model.element.ExecutableElement executeMethod
        end local 21 // javax.lang.model.element.ExecutableElement method
       254: .line 424
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
            aload 22
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 134
       255: .line 569
            aload 15 /* wrappedMethods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 22
            goto 272
      StackMap locals:
      StackMap stack:
       256: aload 22
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 21 /* delegateMethod */
        start local 21 // javax.lang.model.element.ExecutableElement delegateMethod
       257: .line 570
            aload 21 /* delegateMethod */
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 23 /* generatedMethod */
        start local 23 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement generatedMethod
       258: .line 572
            aload 23 /* generatedMethod */
            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
       259: .line 573
            aload 23 /* generatedMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.DEFAULT:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
       260: .line 575
            aload 23 /* generatedMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 24 /* callDelegate */
        start local 24 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder callDelegate
       261: .line 576
            aload 21 /* delegateMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isVoid:(Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 264
       262: .line 577
            aload 24 /* callDelegate */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       263: .line 578
            goto 265
       264: .line 579
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder
      StackMap stack:
            aload 24 /* callDelegate */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       265: .line 581
      StackMap locals:
      StackMap stack:
            aload 24 /* callDelegate */
            ldc "this.delegateNode"
            aload 23 /* generatedMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.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.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       266: .line 582
            aload 23 /* generatedMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 26
            goto 269
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder top java.util.Iterator
      StackMap stack:
       267: aload 26
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 25 /* parameter */
        start local 25 // javax.lang.model.element.VariableElement parameter
       268: .line 583
            aload 24 /* callDelegate */
            aload 25 /* parameter */
            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.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 25 // javax.lang.model.element.VariableElement parameter
       269: .line 582
      StackMap locals:
      StackMap stack:
            aload 26
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 267
       270: .line 585
            aload 24 /* callDelegate */
            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.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       271: .line 586
            aload 11 /* wrapperType */
            aload 23 /* generatedMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        end local 24 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder callDelegate
        end local 23 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement generatedMethod
        end local 21 // javax.lang.model.element.ExecutableElement delegateMethod
       272: .line 569
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.element.Element int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement java.util.List javax.lang.model.element.PackageElement java.util.Set java.lang.String com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror java.util.Set com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement java.util.List java.util.List java.util.List javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement javax.lang.model.element.ExecutableElement top java.util.Iterator
      StackMap stack:
            aload 22
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 256
       273: .line 589
            aload 11 /* wrapperType */
            areturn
        end local 20 // javax.lang.model.element.ExecutableElement outgoingConverterMethod
        end local 19 // javax.lang.model.element.ExecutableElement incomingConverterMethod
        end local 18 // javax.lang.model.element.ExecutableElement genericExecuteDelegate
        end local 17 // java.util.List elementList
        end local 16 // java.util.List wrappedExecuteMethods
        end local 15 // java.util.List wrappedMethods
        end local 14 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement wrappedConstructor
        end local 13 // java.util.Set constructorModifiers
        end local 12 // javax.lang.model.type.TypeMirror resolvedSuperType
        end local 11 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement wrapperType
        end local 10 // java.lang.String wrapperClassName
        end local 9 // java.util.Set typeModifiers
        end local 8 // javax.lang.model.element.PackageElement pack
        end local 7 // java.util.List constructors
        end local 6 // javax.lang.model.element.ExecutableElement constructor
        end local 5 // javax.lang.model.element.TypeElement sourceType
        end local 4 // com.oracle.truffle.dsl.processor.TruffleTypes types
        end local 3 // boolean topLevelClass
        end local 2 // javax.lang.model.element.Element e
        end local 1 // com.oracle.truffle.dsl.processor.ProcessorContext context
        end local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0  274     0                     this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;
            0  274     1                  context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            0  274     2                        e  Ljavax/lang/model/element/Element;
            0  274     3            topLevelClass  Z
           12  274     4                    types  Lcom/oracle/truffle/dsl/processor/TruffleTypes;
           13  274     5               sourceType  Ljavax/lang/model/element/TypeElement;
           14  274     6              constructor  Ljavax/lang/model/element/ExecutableElement;
           15  274     7             constructors  Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
           18   28     8                 iterator  Ljava/util/ListIterator<Ljavax/lang/model/element/ExecutableElement;>;
           20   27     9                        c  Ljavax/lang/model/element/ExecutableElement;
           21   27    10                 modifier  Ljavax/lang/model/element/Modifier;
           31   35     8                        c  Ljavax/lang/model/element/ExecutableElement;
           32   35    10           firstParameter  Ljavax/lang/model/element/VariableElement;
           39   43     8                        c  Ljavax/lang/model/element/ExecutableElement;
           40   43    10           firstParameter  Ljavax/lang/model/element/VariableElement;
           48  274     8                     pack  Ljavax/lang/model/element/PackageElement;
           51   52     9            typeModifiers  Ljava/util/Set<Ljavax/lang/model/element/Modifier;>;
           53  274     9            typeModifiers  Ljava/util/Set<Ljavax/lang/model/element/Modifier;>;
           49  274    10         wrapperClassName  Ljava/lang/String;
           55  274    11              wrapperType  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
           56  274    12        resolvedSuperType  Ljavax/lang/model/type/TypeMirror;
           63   64    13     constructorModifiers  Ljava/util/Set<Ljavax/lang/model/element/Modifier;>;
           65  274    13     constructorModifiers  Ljava/util/Set<Ljavax/lang/model/element/Modifier;>;
           66  274    14       wrappedConstructor  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           69   74    15                    field  Ljavax/lang/model/element/VariableElement;
           72   74    17                   getter  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           77   80    15               returnType  Ljavax/lang/model/type/TypeMirror;
           78   80    16   getInstrumentationTags  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           81  274    15           wrappedMethods  Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
           82  274    16    wrappedExecuteMethods  Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
           83  274    17              elementList  Ljava/util/List<+Ljavax/lang/model/element/Element;>;
           84  274    18   genericExecuteDelegate  Ljavax/lang/model/element/ExecutableElement;
           86   95    19                   method  Ljavax/lang/model/element/ExecutableElement;
           90   95    21               firstParam  Ljavax/lang/model/element/VariableElement;
           98  107    19                   method  Ljavax/lang/model/element/ExecutableElement;
          101  107    21               methodName  Ljava/lang/String;
          109  274    19  incomingConverterMethod  Ljavax/lang/model/element/ExecutableElement;
          110  274    20  outgoingConverterMethod  Ljavax/lang/model/element/ExecutableElement;
          112  128    21                   method  Ljavax/lang/model/element/ExecutableElement;
          113  128    23        incomingConverter  Ljavax/lang/model/element/AnnotationMirror;
          114  128    24        outgoingConverter  Ljavax/lang/model/element/AnnotationMirror;
          135  254    21                   method  Ljavax/lang/model/element/ExecutableElement;
          136  254    23            executeMethod  Ljavax/lang/model/element/ExecutableElement;
          137  254    24           wrappedExecute  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          141  254    25       frameParameterName  Ljava/lang/String;
          143  146    26                parameter  Ljavax/lang/model/element/VariableElement;
          148  254    26                  builder  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
          149  254    27         returnTypeMirror  Ljavax/lang/model/type/TypeMirror;
          150  254    28       executeReturnsVoid  Z
          156  158    29               returnName  Ljava/lang/String;
          159  254    29               returnName  Ljava/lang/String;
          163  254    30      hasUnexpectedResult  Z
          167  254    31             callDelegate  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
          170  171    32                parameter  Ljavax/lang/model/element/VariableElement;
          197  254    32           callExOrUnwind  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
          211  248    33         objectReturnType  Z
          212  248    34   throwsUnexpectedResult  Z
          257  272    21           delegateMethod  Ljavax/lang/model/element/ExecutableElement;
          258  272    23          generatedMethod  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          261  272    24             callDelegate  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
          268  269    25                parameter  Ljavax/lang/model/element/VariableElement;
    MethodParameters:
               Name  Flags
      context        
      e              
      topLevelClass  

  private static boolean isExecuteMethod(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.lang.model.element.ExecutableElement method
         0: .line 593
            aload 0 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 1 /* methodName */
        start local 1 // java.lang.String methodName
         1: .line 594
            aload 1 /* methodName */
            ldc "execute"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 595
            iconst_0
            ireturn
         3: .line 597
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.lang.String methodName
        end local 0 // javax.lang.model.element.ExecutableElement method
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0      method  Ljavax/lang/model/element/ExecutableElement;
            1    4     1  methodName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      method  

  private static boolean isOverridable(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // javax.lang.model.element.ExecutableElement method
         0: .line 601
            aload 0 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            astore 1 /* modifiers */
        start local 1 // java.util.Set modifiers
         1: .line 602
            aload 1 /* modifiers */
            getstatic javax.lang.model.element.Modifier.FINAL:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 603
            iconst_0
            ireturn
         3: .line 605
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* modifiers */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getVisibility:(Ljava/util/Set;)Ljavax/lang/model/element/Modifier;
            astore 2 /* visibility */
        start local 2 // javax.lang.model.element.Modifier visibility
         4: .line 606
            aload 2 /* visibility */
            getstatic javax.lang.model.element.Modifier.PRIVATE:Ljavax/lang/model/element/Modifier;
            if_acmpne 6
         5: .line 607
            iconst_0
            ireturn
         6: .line 609
      StackMap locals: javax.lang.model.element.Modifier
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // javax.lang.model.element.Modifier visibility
        end local 1 // java.util.Set modifiers
        end local 0 // javax.lang.model.element.ExecutableElement method
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0      method  Ljavax/lang/model/element/ExecutableElement;
            1    7     1   modifiers  Ljava/util/Set<Ljavax/lang/model/element/Modifier;>;
            4    7     2  visibility  Ljavax/lang/model/element/Modifier;
    MethodParameters:
        Name  Flags
      method  

  private static com.oracle.truffle.dsl.processor.java.model.CodeTree createCallConverter(javax.lang.model.element.ExecutableElement, java.lang.String, com.oracle.truffle.dsl.processor.java.model.CodeTree);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.lang.model.element.ExecutableElement converterMethod
        start local 1 // java.lang.String frameParameterName
        start local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTree returnName
         0: .line 613
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 3 /* builder */
        start local 3 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
         1: .line 615
            aload 0 /* converterMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.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
            ifeq 4
         2: .line 616
            aload 3 /* builder */
            aload 0 /* converterMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
         3: .line 617
            goto 5
         4: .line 618
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder
      StackMap stack:
            aload 3 /* builder */
            ldc "this.delegateNode"
            aload 0 /* converterMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.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.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
         5: .line 621
      StackMap locals:
      StackMap stack:
            aload 0 /* converterMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 8
         6: .line 622
            aload 3 /* builder */
            aload 2 /* returnName */
            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
         7: .line 623
            goto 12
         8: .line 625
      StackMap locals:
      StackMap stack:
            aload 0 /* converterMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpeq 10
         9: .line 626
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 628
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            aload 1 /* frameParameterName */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        11: .line 629
            aload 3 /* builder */
            aload 2 /* returnName */
            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
        12: .line 631
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        13: .line 632
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.build:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            areturn
        end local 3 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        end local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTree returnName
        end local 1 // java.lang.String frameParameterName
        end local 0 // javax.lang.model.element.ExecutableElement converterMethod
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0     converterMethod  Ljavax/lang/model/element/ExecutableElement;
            0   14     1  frameParameterName  Ljava/lang/String;
            0   14     2          returnName  Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            1   14     3             builder  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
    MethodParameters:
                    Name  Flags
      converterMethod     
      frameParameterName  
      returnName          

  private boolean verifyConverter(javax.lang.model.element.ExecutableElement, javax.lang.model.type.DeclaredType);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/DeclaredType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
        start local 1 // javax.lang.model.element.ExecutableElement method
        start local 2 // javax.lang.model.type.DeclaredType annotationClass
         0: .line 636
            aload 1 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.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 3
         1: .line 637
            aload 0 /* this */
            aload 1 /* method */
            ldc "Method annotated with @%s must not be private."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* annotationClass */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getSimpleName:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
         2: .line 638
            iconst_0
            ireturn
         3: .line 641
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.ABSTRACT:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 642
            aload 0 /* this */
            aload 1 /* method */
            ldc "Method annotated with @%s must not be abstract."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* annotationClass */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getSimpleName:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
         5: .line 643
            iconst_0
            ireturn
         6: .line 645
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.dsl.processor.ProcessorContext context
         7: .line 647
            aload 3 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.VirtualFrame:Ljavax/lang/model/type/DeclaredType;
            astore 4 /* frameClass */
        start local 4 // javax.lang.model.type.TypeMirror frameClass
         8: .line 648
            aload 3 /* context */
            ldc Ljava/lang/Object;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getDeclaredType:(Ljava/lang/Class;)Ljavax/lang/model/type/DeclaredType;
            astore 5 /* objectClass */
        start local 5 // javax.lang.model.type.TypeMirror objectClass
         9: .line 650
            iconst_1
            istore 6 /* valid */
        start local 6 // boolean valid
        10: .line 651
            aload 1 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 15
        11: .line 652
            aload 1 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.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.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 7 /* firstType */
        start local 7 // javax.lang.model.type.TypeMirror firstType
        12: .line 653
            aload 7 /* firstType */
            aload 5 /* objectClass */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 24
        13: .line 654
            iconst_0
            istore 6 /* valid */
        end local 7 // javax.lang.model.type.TypeMirror firstType
        14: .line 656
            goto 24
      StackMap locals: com.oracle.truffle.dsl.processor.InstrumentableProcessor javax.lang.model.element.ExecutableElement javax.lang.model.type.DeclaredType com.oracle.truffle.dsl.processor.ProcessorContext javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int
      StackMap stack:
        15: aload 1 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpne 23
        16: .line 657
            aload 1 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.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.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 7 /* firstType */
        start local 7 // javax.lang.model.type.TypeMirror firstType
        17: .line 658
            aload 7 /* firstType */
            aload 4 /* frameClass */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 19
        18: .line 659
            iconst_0
            istore 6 /* valid */
        19: .line 661
      StackMap locals: javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 1 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 8 /* secondType */
        start local 8 // javax.lang.model.type.TypeMirror secondType
        20: .line 662
            aload 8 /* secondType */
            aload 5 /* objectClass */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 24
        21: .line 663
            iconst_0
            istore 6 /* valid */
        end local 8 // javax.lang.model.type.TypeMirror secondType
        end local 7 // javax.lang.model.type.TypeMirror firstType
        22: .line 665
            goto 24
        23: .line 666
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* valid */
        24: .line 669
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            aload 5 /* objectClass */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 26
        25: .line 670
            iconst_0
            istore 6 /* valid */
        26: .line 673
      StackMap locals:
      StackMap stack:
            iload 6 /* valid */
            ifne 32
        27: .line 674
            aload 0 /* this */
            aload 1 /* method */
            ldc "Invalid @%s method signature. Must be either Object converter(Object) or Object converter(%s, Object)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        28: .line 675
            aload 2 /* annotationClass */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getSimpleName:(Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
            aastore
            dup
            iconst_1
        29: .line 676
            aload 3 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.VirtualFrame: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;
            aastore
        30: .line 674
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.InstrumentableProcessor.emitError:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
        31: .line 677
            iconst_0
            ireturn
        32: .line 680
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // boolean valid
        end local 5 // javax.lang.model.type.TypeMirror objectClass
        end local 4 // javax.lang.model.type.TypeMirror frameClass
        end local 3 // com.oracle.truffle.dsl.processor.ProcessorContext context
        end local 2 // javax.lang.model.type.DeclaredType annotationClass
        end local 1 // javax.lang.model.element.ExecutableElement method
        end local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   33     0             this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;
            0   33     1           method  Ljavax/lang/model/element/ExecutableElement;
            0   33     2  annotationClass  Ljavax/lang/model/type/DeclaredType;
            7   33     3          context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            8   33     4       frameClass  Ljavax/lang/model/type/TypeMirror;
            9   33     5      objectClass  Ljavax/lang/model/type/TypeMirror;
           10   33     6            valid  Z
           12   14     7        firstType  Ljavax/lang/model/type/TypeMirror;
           17   22     7        firstType  Ljavax/lang/model/type/TypeMirror;
           20   22     8       secondType  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
                 Name  Flags
      method           
      annotationClass  

  private static javax.lang.model.type.TypeMirror boxed(javax.lang.model.type.TypeMirror, javax.lang.model.util.Types);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/util/Types;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.lang.model.type.TypeMirror type
        start local 1 // javax.lang.model.util.Types types
         0: .line 684
            aload 0 /* type */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.isPrimitive:()Z
            ifeq 2
         1: .line 685
            aload 1 /* types */
            aload 0 /* type */
            checkcast javax.lang.model.type.PrimitiveType
            invokeinterface javax.lang.model.util.Types.boxedClass:(Ljavax/lang/model/type/PrimitiveType;)Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            areturn
         2: .line 687
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            areturn
        end local 1 // javax.lang.model.util.Types types
        end local 0 // javax.lang.model.type.TypeMirror type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   type  Ljavax/lang/model/type/TypeMirror;
            0    3     1  types  Ljavax/lang/model/util/Types;
    MethodParameters:
       Name  Flags
      type   
      types  

  private static boolean isOverrideableOrUndeclared(javax.lang.model.element.TypeElement, java.lang.String);
    descriptor: (Ljavax/lang/model/element/TypeElement;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.lang.model.element.TypeElement sourceType
        start local 1 // java.lang.String methodName
         0: .line 692
            aload 0 /* sourceType */
            aload 1 /* methodName */
            iconst_0
            anewarray javax.lang.model.type.TypeMirror
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getDeclaredMethodsInSuperTypes:(Ljavax/lang/model/element/TypeElement;Ljava/lang/String;[Ljavax/lang/model/type/TypeMirror;)Ljava/util/List;
            astore 2 /* elements */
        start local 2 // java.util.List elements
         1: .line 693
            aload 2 /* elements */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 2
            aload 2 /* elements */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.FINAL:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_0
            ireturn
      StackMap locals: java.util.List
      StackMap stack:
         2: iconst_1
            ireturn
        end local 2 // java.util.List elements
        end local 1 // java.lang.String methodName
        end local 0 // javax.lang.model.element.TypeElement sourceType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  sourceType  Ljavax/lang/model/element/TypeElement;
            0    3     1  methodName  Ljava/lang/String;
            1    3     2    elements  Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
    MethodParameters:
            Name  Flags
      sourceType  
      methodName  

  private static com.oracle.truffle.dsl.processor.java.model.CodeVariableElement createNodeChild(com.oracle.truffle.dsl.processor.ProcessorContext, javax.lang.model.type.TypeMirror, java.lang.String);
    descriptor: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.ProcessorContext context
        start local 1 // javax.lang.model.type.TypeMirror type
        start local 2 // java.lang.String name
         0: .line 697
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            iconst_1
            anewarray javax.lang.model.element.Modifier
            dup
            iconst_0
            getstatic javax.lang.model.element.Modifier.PRIVATE:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            aload 1 /* type */
            aload 2 /* name */
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            astore 3 /* var */
        start local 3 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement var
         1: .line 698
            aload 3 /* var */
            new com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror
            dup
            aload 0 /* context */
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node_Child:Ljavax/lang/model/type/DeclaredType;
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror.<init>:(Ljavax/lang/model/type/DeclaredType;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.addAnnotationMirror:(Ljavax/lang/model/element/AnnotationMirror;)V
         2: .line 699
            aload 3 /* var */
            areturn
        end local 3 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement var
        end local 2 // java.lang.String name
        end local 1 // javax.lang.model.type.TypeMirror type
        end local 0 // com.oracle.truffle.dsl.processor.ProcessorContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            0    3     1     type  Ljavax/lang/model/type/TypeMirror;
            0    3     2     name  Ljava/lang/String;
            1    3     3      var  Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
    MethodParameters:
         Name  Flags
      context  
      type     
      name     

  void assertNoErrorExpected(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
        start local 1 // javax.lang.model.element.Element e
         0: .line 703
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.InstrumentableProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            aload 1 /* e */
            invokestatic com.oracle.truffle.dsl.processor.ExpectError.assertNoErrorExpected:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/Element;)V
         1: .line 704
            return
        end local 1 // javax.lang.model.element.Element e
        end local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;
            0    2     1     e  Ljavax/lang/model/element/Element;
    MethodParameters:
      Name  Flags
      e     

  void emitError(javax.lang.model.element.Element, java.lang.String);
    descriptor: (Ljavax/lang/model/element/Element;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
        start local 1 // javax.lang.model.element.Element e
        start local 2 // java.lang.String msg
         0: .line 707
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.InstrumentableProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            aload 1 /* e */
            aload 2 /* msg */
            invokestatic com.oracle.truffle.dsl.processor.ExpectError.isExpectedError:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/Element;Ljava/lang/String;)Z
            ifeq 2
         1: .line 708
            return
         2: .line 710
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.InstrumentableProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getMessager:()Ljavax/annotation/processing/Messager;
            getstatic javax.tools.Diagnostic$Kind.ERROR:Ljavax/tools/Diagnostic$Kind;
            aload 2 /* msg */
            aload 1 /* e */
            invokeinterface javax.annotation.processing.Messager.printMessage:(Ljavax/tools/Diagnostic$Kind;Ljava/lang/CharSequence;Ljavax/lang/model/element/Element;)V
         3: .line 711
            return
        end local 2 // java.lang.String msg
        end local 1 // javax.lang.model.element.Element e
        end local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;
            0    4     1     e  Ljavax/lang/model/element/Element;
            0    4     2   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      e     
      msg   

  void emitError(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror, java.lang.String);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
        start local 1 // javax.lang.model.element.Element e
        start local 2 // javax.lang.model.element.AnnotationMirror annotation
        start local 3 // java.lang.String msg
         0: .line 714
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.InstrumentableProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            aload 1 /* e */
            aload 3 /* msg */
            invokestatic com.oracle.truffle.dsl.processor.ExpectError.isExpectedError:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/Element;Ljava/lang/String;)Z
            ifeq 2
         1: .line 715
            return
         2: .line 717
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.InstrumentableProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getMessager:()Ljavax/annotation/processing/Messager;
            getstatic javax.tools.Diagnostic$Kind.ERROR:Ljavax/tools/Diagnostic$Kind;
            aload 3 /* msg */
            aload 1 /* e */
            aload 2 /* 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
         3: .line 718
            return
        end local 3 // java.lang.String msg
        end local 2 // javax.lang.model.element.AnnotationMirror annotation
        end local 1 // javax.lang.model.element.Element e
        end local 0 // com.oracle.truffle.dsl.processor.InstrumentableProcessor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/dsl/processor/InstrumentableProcessor;
            0    4     1           e  Ljavax/lang/model/element/Element;
            0    4     2  annotation  Ljavax/lang/model/element/AnnotationMirror;
            0    4     3         msg  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      e           
      annotation  
      msg         
}
SourceFile: "InstrumentableProcessor.java"
NestMembers:
  com.oracle.truffle.dsl.processor.InstrumentableProcessor$1
InnerClasses:
  com.oracle.truffle.dsl.processor.InstrumentableProcessor$1
  public final Kind = javax.tools.Diagnostic$Kind of javax.tools.Diagnostic
    RuntimeVisibleAnnotations: 
      javax.annotation.processing.SupportedAnnotationTypes(value = {"com.oracle.truffle.api.instrumentation.GenerateWrapper"})