public class com.oracle.truffle.dsl.processor.library.LibraryGenerator extends com.oracle.truffle.dsl.processor.generator.CodeTypeElementFactory<com.oracle.truffle.dsl.processor.library.LibraryData>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.dsl.processor.library.LibraryGenerator
  super_class: com.oracle.truffle.dsl.processor.generator.CodeTypeElementFactory
{
  private static final java.lang.String ACCEPTS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "accepts"

  private com.oracle.truffle.dsl.processor.ProcessorContext context;
    descriptor: Lcom/oracle/truffle/dsl/processor/ProcessorContext;
    flags: (0x0002) ACC_PRIVATE

  private com.oracle.truffle.dsl.processor.library.LibraryData model;
    descriptor: Lcom/oracle/truffle/dsl/processor/library/LibraryData;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Map<java.lang.String, com.oracle.truffle.dsl.processor.java.model.CodeVariableElement> libraryConstants;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 85
            ldc Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.$assertionsDisabled:Z
         3: .line 87
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
         0: .line 85
            aload 0 /* this */
            invokespecial com.oracle.truffle.dsl.processor.generator.CodeTypeElementFactory.<init>:()V
         1: .line 92
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.libraryConstants:Ljava/util/Map;
         2: .line 85
            return
        end local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator;

  public java.util.List<com.oracle.truffle.dsl.processor.java.model.CodeTypeElement> create(com.oracle.truffle.dsl.processor.ProcessorContext, com.oracle.truffle.dsl.processor.AnnotationProcessor<?>, com.oracle.truffle.dsl.processor.library.LibraryData);
    descriptor: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/AnnotationProcessor;Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=50, args_size=4
        start local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
        start local 1 // com.oracle.truffle.dsl.processor.ProcessorContext context1
        start local 2 // com.oracle.truffle.dsl.processor.AnnotationProcessor processor
        start local 3 // com.oracle.truffle.dsl.processor.library.LibraryData model1
         0: .line 108
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.libraryConstants:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 109
            aload 0 /* this */
            aload 1 /* context1 */
            putfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
         2: .line 110
            aload 0 /* this */
            aload 3 /* model1 */
            putfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
         3: .line 112
            aload 3 /* model1 */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.hasErrors:()Z
            ifeq 5
         4: .line 113
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         5: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getTemplateType:()Ljavax/lang/model/element/TypeElement;
            astore 5 /* libraryType */
        start local 5 // javax.lang.model.element.TypeElement libraryType
         6: .line 117
            aload 5 /* libraryType */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 6 /* libraryTypeMirror */
        start local 6 // javax.lang.model.type.TypeMirror libraryTypeMirror
         7: .line 119
            new com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror$DeclaredCodeTypeMirror
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypeElement:(Ljavax/lang/model/type/DeclaredType;)Ljavax/lang/model/element/TypeElement;
            iconst_1
            anewarray javax.lang.model.type.TypeMirror
            dup
            iconst_0
         8: .line 120
            aload 6 /* libraryTypeMirror */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
         9: .line 119
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror$DeclaredCodeTypeMirror.<init>:(Ljavax/lang/model/element/TypeElement;Ljava/util/List;)V
            astore 7 /* baseType */
        start local 7 // javax.lang.model.type.TypeMirror baseType
        10: .line 122
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aconst_null
            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;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.createGenTypeName:(Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Ljava/lang/String;
            aload 7 /* baseType */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass:(Lcom/oracle/truffle/dsl/processor/model/Template;Lcom/oracle/truffle/dsl/processor/model/TemplateMethod;Ljava/util/Set;Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 8 /* genClass */
        start local 8 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement genClass
        11: .line 124
            new com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror$DeclaredCodeTypeMirror
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Class;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypeElement:(Ljava/lang/Class;)Ljavax/lang/model/element/TypeElement;
            iconst_1
            anewarray javax.lang.model.type.TypeMirror
            dup
            iconst_0
        12: .line 125
            aload 6 /* libraryTypeMirror */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
        13: .line 124
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror$DeclaredCodeTypeMirror.<init>:(Ljavax/lang/model/element/TypeElement;Ljava/util/List;)V
            astore 9 /* classLiteral */
        start local 9 // javax.lang.model.type.TypeMirror classLiteral
        14: .line 126
            aload 8 /* genClass */
            new com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            dup
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            aload 9 /* classLiteral */
            ldc "lazyLibraryClass"
            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
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 10 /* loadLibraryClass */
        start local 10 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement loadLibraryClass
        15: .line 127
            aload 10 /* loadLibraryClass */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "unchecked"
            aastore
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.mergeSupressWarnings:(Lcom/oracle/truffle/dsl/processor/java/model/CodeElement;[Ljava/lang/String;)V
        16: .line 128
            aload 10 /* loadLibraryClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
        start local 4 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        17: .line 129
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startTryBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        18: .line 130
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "return "
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        19: .line 131
            aload 4 /* builder */
            aload 9 /* classLiteral */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.cast:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        20: .line 132
            aload 4 /* builder */
            aload 9 /* classLiteral */
            ldc "forName"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 5 /* libraryType */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getClassQualifiedName:(Ljavax/lang/model/element/TypeElement;)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
        21: .line 133
            ldc "false"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
        22: .line 134
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 8 /* genClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.typeLiteral:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc ".getClassLoader()"
            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;
        23: .line 135
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        24: .line 136
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        25: .line 137
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/ClassNotFoundException;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            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
        26: .line 138
            aload 4 /* builder */
            ldc "e"
            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.generator.GeneratorUtils.createShouldNotReachHere:(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
        27: .line 139
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        28: .line 141
            aload 8 /* genClass */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            iconst_3
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            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;
            aload 9 /* classLiteral */
            ldc "LIBRARY_CLASS"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            astore 11 /* libraryClassLiteral */
        start local 11 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement libraryClassLiteral
        29: .line 142
            aload 11 /* libraryClassLiteral */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.createInitBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 10 /* loadLibraryClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/element/ExecutableElement;)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
        30: .line 144
            aload 8 /* genClass */
            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.STATIC: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
            ldc "<cinit>"
            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
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 12 /* staticsMethod */
        start local 12 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement staticsMethod
        31: .line 145
            aload 12 /* staticsMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 13 /* statics */
        start local 13 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder statics
        32: .line 147
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 14 /* methods */
        start local 14 // java.util.List methods
        33: .line 148
            iconst_0
            istore 15 /* messageIndex */
        start local 15 // int messageIndex
        34: goto 41
        35: .line 149
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getMethods:()Ljava/util/List;
            iload 15 /* messageIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryMessage
            astore 16 /* message */
        start local 16 // com.oracle.truffle.dsl.processor.library.LibraryMessage message
        36: .line 150
            aload 16 /* message */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.hasErrors:()Z
            ifeq 38
        37: .line 151
            goto 40
        38: .line 153
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryMessage
      StackMap stack:
            new com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
            dup
            aload 0 /* this */
            aload 16 /* message */
            iload 15 /* messageIndex */
            invokespecial com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.<init>:(Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator;Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;I)V
            astore 17 /* objects */
        start local 17 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects objects
        39: .line 154
            aload 14 /* methods */
            aload 17 /* objects */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 17 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects objects
        end local 16 // com.oracle.truffle.dsl.processor.library.LibraryMessage message
        40: .line 148
      StackMap locals:
      StackMap stack:
            iinc 15 /* messageIndex */ 1
      StackMap locals:
      StackMap stack:
        41: iload 15 /* messageIndex */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getMethods:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 35
        end local 15 // int messageIndex
        42: .line 157
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "getDefaultClass"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 15 /* getDefault */
        start local 15 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getDefault
        43: .line 158
            aload 15 /* getDefault */
            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
        44: .line 159
            aload 15 /* getDefault */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "receiver"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
        45: .line 160
            aload 15 /* getDefault */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
        46: .line 162
            getstatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.$assertionsDisabled:Z
            ifne 47
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getDefaultExports:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifgt 47
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        47: .line 164
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
      StackMap stack:
            iconst_0
            istore 16 /* elseIf */
        start local 16 // boolean elseIf
        48: .line 165
            iconst_0
            istore 17 /* index */
        start local 17 // int index
        49: .line 166
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getDefaultExports:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 19
            goto 72
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int top java.util.Iterator
      StackMap stack:
        50: aload 19
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryDefaultExportData
            astore 18 /* defaultExport */
        start local 18 // com.oracle.truffle.dsl.processor.library.LibraryDefaultExportData defaultExport
        51: .line 167
            aload 18 /* defaultExport */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryDefaultExportData.getReceiverType:()Ljavax/lang/model/type/TypeMirror;
            astore 20 /* defaultProviderReceiverType */
        start local 20 // javax.lang.model.type.TypeMirror defaultProviderReceiverType
        52: .line 168
            iconst_0
            istore 21 /* ifCount */
        start local 21 // int ifCount
        53: .line 169
            aload 20 /* defaultProviderReceiverType */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Object;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)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 58
        54: .line 170
            iload 16 /* elseIf */
            ifeq 57
        55: .line 171
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startElseBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        56: .line 172
            iinc 21 /* ifCount */ 1
        57: .line 177
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.library.LibraryDefaultExportData java.util.Iterator javax.lang.model.type.TypeMirror int
      StackMap stack:
            getstatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.$assertionsDisabled:Z
            ifne 62
            iload 17 /* index */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getDefaultExports:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmpeq 62
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        58: .line 179
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            iload 16 /* elseIf */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:(Z)Z
            istore 16 /* elseIf */
        59: .line 180
            iinc 21 /* ifCount */ 1
        60: .line 181
            aload 4 /* builder */
            ldc "receiver"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            aload 20 /* defaultProviderReceiverType */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.boxType:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Ljavax/lang/model/type/TypeMirror;)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;
            pop
        61: .line 182
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        62: .line 184
      StackMap locals:
      StackMap stack:
            aload 18 /* defaultExport */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryDefaultExportData.getImplType:()Ljavax/lang/model/type/TypeMirror;
            ifnonnull 69
        63: .line 185
            aload 0 /* this */
            aload 8 /* genClass */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryGenerator.createDefaultImpl:(Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)[Ljavax/lang/model/type/TypeMirror;
            astore 22 /* defaultTypeMirrors */
        start local 22 // javax.lang.model.type.TypeMirror[] defaultTypeMirrors
        64: .line 186
            aload 13 /* statics */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryExport:Ljavax/lang/model/type/DeclaredType;
            ldc "register"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        65: .line 187
            aload 13 /* statics */
            aload 11 /* libraryClassLiteral */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/element/VariableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 22 /* defaultTypeMirrors */
            iconst_1
            aaload
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(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;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        66: .line 188
            aload 13 /* statics */
            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
        67: .line 189
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 22 /* defaultTypeMirrors */
            iconst_0
            aaload
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.typeLiteral:(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
        end local 22 // javax.lang.model.type.TypeMirror[] defaultTypeMirrors
        68: .line 190
            goto 70
        69: .line 191
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 18 /* defaultExport */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryDefaultExportData.getImplType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.typeLiteral:(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
        70: .line 193
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            iload 21 /* ifCount */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:(I)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        71: .line 194
            iinc 17 /* index */ 1
        end local 21 // int ifCount
        end local 20 // javax.lang.model.type.TypeMirror defaultProviderReceiverType
        end local 18 // com.oracle.truffle.dsl.processor.library.LibraryDefaultExportData defaultExport
        72: .line 166
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int top java.util.Iterator
      StackMap stack:
            aload 19
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 50
        73: .line 196
            aload 8 /* genClass */
            aload 15 /* getDefault */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        74: .line 199
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aconst_null
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            ldc "MessageImpl"
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Message:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass:(Lcom/oracle/truffle/dsl/processor/model/Template;Lcom/oracle/truffle/dsl/processor/model/TemplateMethod;Ljava/util/Set;Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 18 /* messageClass */
        start local 18 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement messageClass
        75: .line 200
            aload 18 /* messageClass */
            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.FINAL:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "index"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        76: .line 201
            new com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            dup
            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;
            aconst_null
            aload 18 /* messageClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.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
            astore 19 /* messageConstructor */
        start local 19 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement messageConstructor
        77: .line 202
            aload 19 /* messageConstructor */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "name"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.addParameter:(Ljavax/lang/model/element/VariableElement;)V
        78: .line 203
            aload 19 /* messageConstructor */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "index"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.addParameter:(Ljavax/lang/model/element/VariableElement;)V
        79: .line 204
            aload 19 /* messageConstructor */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Class;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "returnType"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.addParameter:(Ljavax/lang/model/element/VariableElement;)V
        80: .line 205
            aload 19 /* messageConstructor */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc [Ljava/lang/Class;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "parameters"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.addParameter:(Ljavax/lang/model/element/VariableElement;)V
        81: .line 206
            aload 19 /* messageConstructor */
            iconst_1
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.setVarArgs:(Z)V
        82: .line 207
            aload 19 /* messageConstructor */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
        83: .line 208
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startSuperCall:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 11 /* libraryClassLiteral */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/element/VariableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "name"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "returnType"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "parameters"
            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
        84: .line 209
            aload 4 /* builder */
            ldc "this.index = index"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        85: .line 210
            aload 18 /* messageClass */
            aload 19 /* messageConstructor */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        86: .line 211
            aload 8 /* genClass */
            aload 18 /* messageClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        87: .line 214
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aconst_null
            iconst_3
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            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;
            ldc "Proxy"
            aload 6 /* libraryTypeMirror */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass:(Lcom/oracle/truffle/dsl/processor/model/Template;Lcom/oracle/truffle/dsl/processor/model/TemplateMethod;Ljava/util/Set;Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 20 /* proxyClass */
        start local 20 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement proxyClass
        88: .line 215
            aload 8 /* genClass */
            aload 20 /* proxyClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        89: .line 216
            aload 20 /* proxyClass */
            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 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.ReflectionLibrary:Ljavax/lang/model/type/DeclaredType;
            ldc "lib"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            astore 21 /* libField */
        start local 21 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement libField
        90: .line 217
            aload 21 /* libField */
            new com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types: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
        91: .line 218
            aload 20 /* proxyClass */
            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;
            aload 20 /* proxyClass */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createConstructorUsingFields:(Ljava/util/Set;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        92: .line 219
            aload 20 /* proxyClass */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryGenerator.createGenericCastMethod:(Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.addOptional:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        93: .line 221
            aload 14 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 23
            goto 108
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement top java.util.Iterator
      StackMap stack:
        94: aload 23
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
            astore 22 /* message */
        start local 22 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
        95: .line 222
            aload 22 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()Ljava/lang/String;
            ldc "accepts"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 97
        96: .line 223
            goto 108
        97: .line 225
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator
      StackMap stack:
            aload 22 /* message */
            aload 8 /* genClass */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            iconst_3
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            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;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Message:Ljavax/lang/model/type/DeclaredType;
            aload 22 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.createConstantName:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            putfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.messageField:Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
        98: .line 226
            aload 22 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.messageField:Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.createInitBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
        99: .line 227
            aload 4 /* builder */
            aload 18 /* messageClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 22 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 22 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.messageIndex:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       100: .line 228
            aload 22 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getExecutable:()Ljavax/lang/model/element/ExecutableElement;
            astore 24 /* method */
        start local 24 // javax.lang.model.element.ExecutableElement method
       101: .line 229
            aload 4 /* builder */
            aload 24 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.typeLiteral:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       102: .line 230
            iconst_0
            istore 25 /* i */
        start local 25 // int i
       103: goto 106
       104: .line 231
      StackMap locals: javax.lang.model.element.ExecutableElement int
      StackMap stack:
            aload 4 /* builder */
            aload 24 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            iload 25 /* i */
            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;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.typeLiteral:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       105: .line 230
            iinc 25 /* i */ 1
      StackMap locals:
      StackMap stack:
       106: iload 25 /* i */
            aload 24 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 104
        end local 25 // int i
       107: .line 233
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 24 // javax.lang.model.element.ExecutableElement method
        end local 22 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       108: .line 221
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement top java.util.Iterator
      StackMap stack:
            aload 23
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 94
       109: .line 236
            aload 8 /* genClass */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            iconst_3
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            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;
            aload 8 /* genClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            ldc "INSTANCE"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            astore 22 /* instance */
        start local 22 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement instance
       110: .line 237
            aload 22 /* instance */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.createInitBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 8 /* genClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(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;
            astore 4 /* builder */
       111: .line 239
            aload 13 /* statics */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       112: .line 240
            aload 13 /* statics */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "register"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       113: .line 241
            aload 13 /* statics */
            aload 11 /* libraryClassLiteral */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/element/VariableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 22 /* instance */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.getName:()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
       114: .line 242
            aload 13 /* statics */
            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
       115: .line 244
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getAssertions:()Ljavax/lang/model/type/TypeMirror;
            ifnull 123
       116: .line 245
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "createAssertions"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 23 /* createAssertions */
        start local 23 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createAssertions
       117: .line 246
            aload 23 /* createAssertions */
            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
       118: .line 247
            aload 23 /* createAssertions */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            aload 6 /* libraryTypeMirror */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.setType:(Ljavax/lang/model/type/TypeMirror;)V
       119: .line 248
            aload 23 /* createAssertions */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "delegate"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       120: .line 249
            aload 23 /* createAssertions */
            aload 6 /* libraryTypeMirror */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.setReturnType:(Ljavax/lang/model/type/TypeMirror;)V
       121: .line 250
            aload 23 /* createAssertions */
            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 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getAssertions:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "delegate"
            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
       122: .line 251
            aload 8 /* genClass */
            aload 23 /* createAssertions */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        end local 23 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createAssertions
       123: .line 254
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "createProxy"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 23 /* createProxy */
        start local 23 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createProxy
       124: .line 255
            aload 23 /* createProxy */
            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
       125: .line 256
            aload 23 /* createProxy */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "library"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       126: .line 257
            aload 23 /* createProxy */
            aload 6 /* libraryTypeMirror */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.setReturnType:(Ljavax/lang/model/type/TypeMirror;)V
       127: .line 258
            aload 23 /* createProxy */
            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 20 /* proxyClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "library"
            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
       128: .line 259
            aload 8 /* genClass */
            aload 23 /* createProxy */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       129: .line 261
            aload 14 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 25
            goto 192
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
       130: aload 25
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
            astore 24 /* message */
        start local 24 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       131: .line 262
            aload 20 /* proxyClass */
            aload 24 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getExecutable:()Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.cloneNoAnnotations:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 26 /* executeImpl */
        start local 26 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement executeImpl
       132: .line 263
            aload 26 /* executeImpl */
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.removeAbstractModifiers:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
       133: .line 264
            aload 26 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.TYPEVAR:Ljavax/lang/model/type/TypeKind;
            if_acmpne 135
       134: .line 265
            aload 26 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getAnnotationMirrors:()Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.createSuppressWarningsUnchecked:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;)Lcom/oracle/truffle/dsl/processor/java/model/CodeAnnotationMirror;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       135: .line 267
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
      StackMap stack:
            aload 26 /* executeImpl */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "receiver_"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       136: .line 268
            aload 26 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       137: .line 270
            iconst_0
            istore 27 /* uncheckedCast */
        start local 27 // boolean uncheckedCast
       138: .line 271
            aload 24 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()Ljava/lang/String;
            ldc "accepts"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 141
       139: .line 272
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "lib.accepts(receiver_)"
            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
       140: .line 273
            goto 190
       141: .line 274
      StackMap locals: int
      StackMap stack:
            aload 26 /* executeImpl */
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getSignatureReceiverType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.injectReceiverType:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;ILjavax/lang/model/type/TypeMirror;)V
       142: .line 275
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startTryBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       143: .line 276
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       144: .line 277
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Object;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            aload 26 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.needsCastTo:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 148
       145: .line 278
            aload 26 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.hasGenericTypes:(Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 147
       146: .line 279
            iconst_1
            istore 27 /* uncheckedCast */
       147: .line 281
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            aload 26 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.cast:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       148: .line 284
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            ldc "lib"
            ldc "send"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCall:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "receiver_"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aconst_null
            aload 24 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.messageField:Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.field:(Ljava/lang/String;Ljavax/lang/model/element/VariableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       149: .line 286
            aload 26 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            astore 28 /* executeParameters */
        start local 28 // java.util.List executeParameters
       150: .line 287
            aload 28 /* executeParameters */
            iconst_1
            aload 28 /* executeParameters */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 30
            goto 158
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.util.List top java.util.Iterator
      StackMap stack:
       151: aload 30
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 29 /* param */
        start local 29 // javax.lang.model.element.VariableElement param
       152: .line 288
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       153: .line 289
            aload 26 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.isVarArgs:()Z
            ifeq 156
            aload 28 /* executeParameters */
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpne 156
            aload 29 /* param */
            aload 28 /* executeParameters */
            aload 28 /* executeParameters */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            if_acmpne 156
       154: .line 290
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc [Ljava/lang/Object;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            aload 29 /* param */
            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 156
       155: .line 293
            aload 4 /* builder */
            ldc "(Object) "
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       156: .line 295
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.util.List javax.lang.model.element.VariableElement java.util.Iterator
      StackMap stack:
            aload 4 /* builder */
            aload 29 /* param */
            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
       157: .line 296
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 29 // javax.lang.model.element.VariableElement param
       158: .line 287
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.util.List top java.util.Iterator
      StackMap stack:
            aload 30
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 151
       159: .line 298
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       160: .line 299
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       161: .line 300
            new java.util.ArrayList
            dup
            aload 26 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getThrownTypes:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 29 /* exceptionTypes */
        start local 29 // java.util.List exceptionTypes
       162: .line 301
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/RuntimeException;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            astore 30 /* runtimeException */
        start local 30 // javax.lang.model.type.TypeMirror runtimeException
       163: .line 302
            aload 29 /* exceptionTypes */
            aload 30 /* runtimeException */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       164: .line 305
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 31 /* remove */
        start local 31 // java.util.Set remove
       165: .line 306
            aload 29 /* exceptionTypes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 33
            goto 173
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.util.List java.util.List javax.lang.model.type.TypeMirror java.util.Set top java.util.Iterator
      StackMap stack:
       166: aload 33
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 32 /* type1 */
        start local 32 // javax.lang.model.type.TypeMirror type1
       167: .line 307
            aload 29 /* exceptionTypes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 35
            goto 172
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.util.List java.util.List javax.lang.model.type.TypeMirror java.util.Set javax.lang.model.type.TypeMirror java.util.Iterator top java.util.Iterator
      StackMap stack:
       168: aload 35
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 34 /* type2 */
        start local 34 // javax.lang.model.type.TypeMirror type2
       169: .line 308
            aload 32 /* type1 */
            aload 34 /* type2 */
            if_acmpeq 172
            aload 32 /* type1 */
            aload 34 /* type2 */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 172
       170: .line 309
            aload 31 /* remove */
            aload 32 /* type1 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       171: .line 310
            goto 173
        end local 34 // javax.lang.model.type.TypeMirror type2
       172: .line 307
      StackMap locals:
      StackMap stack:
            aload 35
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 168
        end local 32 // javax.lang.model.type.TypeMirror type1
       173: .line 306
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.util.List java.util.List javax.lang.model.type.TypeMirror java.util.Set top java.util.Iterator
      StackMap stack:
            aload 33
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 166
       174: .line 314
            aload 29 /* exceptionTypes */
            aload 31 /* remove */
            invokeinterface java.util.List.removeAll:(Ljava/util/Collection;)Z
            pop
       175: .line 316
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Exception;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            astore 32 /* exceptionType */
        start local 32 // javax.lang.model.type.TypeMirror exceptionType
       176: .line 318
            iconst_1
            istore 33 /* fallThrough */
        start local 33 // boolean fallThrough
       177: .line 319
            aload 29 /* exceptionTypes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 35
            goto 182
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.util.List java.util.List javax.lang.model.type.TypeMirror java.util.Set javax.lang.model.type.TypeMirror int top java.util.Iterator
      StackMap stack:
       178: aload 35
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 34 /* thrownType */
        start local 34 // javax.lang.model.type.TypeMirror thrownType
       179: .line 320
            aload 32 /* exceptionType */
            aload 34 /* thrownType */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 182
       180: .line 321
            iconst_0
            istore 33 /* fallThrough */
       181: .line 322
            goto 183
        end local 34 // javax.lang.model.type.TypeMirror thrownType
       182: .line 319
      StackMap locals:
      StackMap stack:
            aload 35
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 178
       183: .line 326
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int java.util.List java.util.List javax.lang.model.type.TypeMirror java.util.Set javax.lang.model.type.TypeMirror int
      StackMap stack:
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 29 /* exceptionTypes */
            iconst_0
            anewarray javax.lang.model.type.TypeMirror
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror[]
            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
       184: .line 327
            aload 4 /* 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;
            pop
       185: .line 328
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       186: .line 329
            iload 33 /* fallThrough */
            ifeq 190
       187: .line 330
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Exception;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            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
       188: .line 331
            aload 4 /* builder */
            ldc "e_"
            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.generator.GeneratorUtils.createShouldNotReachHere:(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
       189: .line 332
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 33 // boolean fallThrough
        end local 32 // javax.lang.model.type.TypeMirror exceptionType
        end local 31 // java.util.Set remove
        end local 30 // javax.lang.model.type.TypeMirror runtimeException
        end local 29 // java.util.List exceptionTypes
        end local 28 // java.util.List executeParameters
       190: .line 335
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int
      StackMap stack:
            iload 27 /* uncheckedCast */
            ifeq 192
       191: .line 336
            aload 26 /* executeImpl */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "unchecked"
            aastore
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.mergeSupressWarnings:(Lcom/oracle/truffle/dsl/processor/java/model/CodeElement;[Ljava/lang/String;)V
        end local 27 // boolean uncheckedCast
        end local 26 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement executeImpl
        end local 24 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       192: .line 261
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
            aload 25
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 130
       193: .line 340
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "createMessageBitSet"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 24 /* createMessageBitSet */
        start local 24 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createMessageBitSet
       194: .line 341
            aload 24 /* createMessageBitSet */
            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
       195: .line 342
            aload 24 /* createMessageBitSet */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "messages"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       196: .line 343
            aload 24 /* createMessageBitSet */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       197: .line 344
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/util/BitSet;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "bitSet"
            ldc "new BitSet(2)"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       198: .line 346
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startFor:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       199: .line 347
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Message:Ljavax/lang/model/type/DeclaredType;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.type:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       200: .line 348
            aload 4 /* builder */
            ldc " message : messages"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       201: .line 350
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       202: .line 351
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       203: .line 352
            aload 4 /* builder */
            ldc "bitSet.set((("
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 18 /* messageClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.type:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc ") message).index)"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       204: .line 353
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       205: .line 354
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       206: .line 356
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       207: .line 357
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.FinalBitSet:Ljavax/lang/model/type/DeclaredType;
            ldc "valueOf"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "bitSet"
            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
       208: .line 358
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       209: .line 360
            aload 8 /* genClass */
            aload 24 /* createMessageBitSet */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       210: .line 363
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aconst_null
            iconst_3
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            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;
            ldc "Delegate"
            aload 6 /* libraryTypeMirror */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass:(Lcom/oracle/truffle/dsl/processor/model/Template;Lcom/oracle/truffle/dsl/processor/model/TemplateMethod;Ljava/util/Set;Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 25 /* delegateClass */
        start local 25 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement delegateClass
       211: .line 364
            aload 8 /* genClass */
            aload 25 /* delegateClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       212: .line 365
            aload 25 /* delegateClass */
            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 6 /* libraryTypeMirror */
            ldc "delegateLibrary"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            astore 26 /* delegateField */
        start local 26 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement delegateField
       213: .line 366
            aload 26 /* delegateField */
            new com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types: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
       214: .line 367
            aload 25 /* delegateClass */
            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;
            aload 25 /* delegateClass */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createConstructorUsingFields:(Ljava/util/Set;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       215: .line 369
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "createDelegate"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 27 /* createDelegate */
        start local 27 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createDelegate
       216: .line 370
            aload 27 /* createDelegate */
            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
       217: .line 371
            aload 27 /* createDelegate */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "delegateLibrary"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       218: .line 372
            aload 27 /* createDelegate */
            iconst_1
            anewarray javax.lang.model.type.TypeMirror
            dup
            iconst_0
            aload 6 /* libraryTypeMirror */
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.changeTypes:([Ljavax/lang/model/type/TypeMirror;)V
       219: .line 373
            aload 27 /* createDelegate */
            aload 6 /* libraryTypeMirror */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.setReturnType:(Ljavax/lang/model/type/TypeMirror;)V
       220: .line 374
            aload 27 /* createDelegate */
            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 25 /* delegateClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "delegateLibrary"
            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
       221: .line 375
            aload 8 /* genClass */
            aload 27 /* createDelegate */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       222: .line 377
            aload 25 /* delegateClass */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryGenerator.createDelegateCastMethod:(Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.addOptional:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       223: .line 379
            aload 14 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 29
            goto 279
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
       224: aload 29
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
            astore 28 /* message */
        start local 28 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       225: .line 380
            aload 25 /* delegateClass */
            aload 28 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getExecutable:()Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.cloneNoAnnotations:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 30 /* executeImpl */
        start local 30 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement executeImpl
       226: .line 381
            aload 30 /* executeImpl */
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.removeAbstractModifiers:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
       227: .line 382
            aload 30 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.TYPEVAR:Ljavax/lang/model/type/TypeKind;
            if_acmpne 229
       228: .line 383
            aload 30 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getAnnotationMirrors:()Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.createSuppressWarningsUnchecked:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;)Lcom/oracle/truffle/dsl/processor/java/model/CodeAnnotationMirror;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       229: .line 385
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
      StackMap stack:
            aload 30 /* executeImpl */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "receiver_"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       230: .line 386
            aload 30 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       231: .line 388
            iconst_0
            istore 31 /* uncheckedCast */
        start local 31 // boolean uncheckedCast
       232: .line 389
            aload 28 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()Ljava/lang/String;
            ldc "accepts"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 235
       233: .line 390
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "delegateLibrary.accepts(receiver_)"
            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
       234: .line 391
            goto 277
       235: .line 392
      StackMap locals: int
      StackMap stack:
            aload 30 /* executeImpl */
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getSignatureReceiverType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.injectReceiverType:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;ILjavax/lang/model/type/TypeMirror;)V
       236: .line 393
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "isDelegated"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       237: .line 394
            aload 4 /* builder */
            ldc "delegateLibrary"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       238: .line 395
            aload 4 /* builder */
            aload 28 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.messageIndex:I
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       239: .line 396
            aload 4 /* 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;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       240: .line 399
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       241: .line 400
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Object;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.type:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       242: .line 401
            aload 4 /* builder */
            ldc " delegate = "
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       243: .line 402
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "readDelegate"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       244: .line 403
            aload 4 /* builder */
            ldc "this.delegateLibrary"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "receiver_"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       245: .line 404
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       246: .line 405
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       247: .line 408
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       248: .line 409
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "getDelegateLibrary"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       249: .line 410
            aload 4 /* builder */
            ldc "this.delegateLibrary"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "delegate"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       250: .line 411
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       251: .line 412
            aload 4 /* builder */
            ldc "."
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 30 /* executeImpl */
            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;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       252: .line 413
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Object;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getSignatureReceiverType:()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
            ifne 258
       253: .line 414
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       254: .line 415
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getSignatureReceiverType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.cast:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       255: .line 416
            aload 4 /* builder */
            ldc "delegate"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       256: .line 417
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       257: .line 418
            goto 259
       258: .line 419
      StackMap locals:
      StackMap stack:
            aload 4 /* builder */
            ldc "delegate"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       259: .line 421
      StackMap locals:
      StackMap stack:
            aload 30 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            iconst_1
            aload 30 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 33
            goto 262
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int top java.util.Iterator
      StackMap stack:
       260: aload 33
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 32 /* param */
        start local 32 // javax.lang.model.element.VariableElement param
       261: .line 422
            aload 4 /* builder */
            aload 32 /* param */
            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 param
       262: .line 421
      StackMap locals:
      StackMap stack:
            aload 33
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 260
       263: .line 424
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       264: .line 425
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       265: .line 426
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       266: .line 428
            aload 4 /* 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.startElseBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       267: .line 429
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       268: .line 430
            aload 4 /* builder */
            ldc "this.delegateLibrary"
            aload 30 /* executeImpl */
            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
       269: .line 431
            aload 4 /* builder */
            ldc "receiver_"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       270: .line 432
            aload 30 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            iconst_1
            aload 30 /* executeImpl */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 33
            goto 273
      StackMap locals:
      StackMap stack:
       271: aload 33
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 32 /* param */
        start local 32 // javax.lang.model.element.VariableElement param
       272: .line 433
            aload 4 /* builder */
            aload 32 /* param */
            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 param
       273: .line 432
      StackMap locals:
      StackMap stack:
            aload 33
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 271
       274: .line 435
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       275: .line 436
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       276: .line 437
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       277: .line 439
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int
      StackMap stack:
            iload 31 /* uncheckedCast */
            ifeq 279
       278: .line 440
            aload 30 /* executeImpl */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "unchecked"
            aastore
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.mergeSupressWarnings:(Lcom/oracle/truffle/dsl/processor/java/model/CodeElement;[Ljava/lang/String;)V
        end local 31 // boolean uncheckedCast
        end local 30 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement executeImpl
        end local 28 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       279: .line 379
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
            aload 29
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 224
       280: .line 444
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node:Ljavax/lang/model/type/DeclaredType;
            ldc "getCost"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 28 /* delegateNodeCost */
        start local 28 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement delegateNodeCost
       281: .line 445
            aload 28 /* delegateNodeCost */
            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 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.NodeCost:Ljavax/lang/model/type/DeclaredType;
            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
       282: .line 446
            aload 25 /* delegateClass */
            aload 28 /* delegateNodeCost */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       283: .line 448
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node:Ljavax/lang/model/type/DeclaredType;
            ldc "isAdoptable"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 29 /* delegateIsAdoptable */
        start local 29 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement delegateIsAdoptable
       284: .line 449
            aload 29 /* delegateIsAdoptable */
            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;
            ldc "this.delegateLibrary.isAdoptable()"
            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
       285: .line 450
            aload 25 /* delegateClass */
            aload 29 /* delegateIsAdoptable */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       286: .line 452
            aload 8 /* genClass */
            aload 0 /* this */
            aload 14 /* methods */
            aload 18 /* messageClass */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryGenerator.createGenericDispatch:(Ljava/util/List;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       287: .line 455
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aconst_null
            iconst_3
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            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;
            ldc "CachedToUncachedDispatch"
            aload 6 /* libraryTypeMirror */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass:(Lcom/oracle/truffle/dsl/processor/model/Template;Lcom/oracle/truffle/dsl/processor/model/TemplateMethod;Ljava/util/Set;Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 30 /* cachedToUncached */
        start local 30 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cachedToUncached
       288: .line 456
            aload 30 /* cachedToUncached */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node:Ljavax/lang/model/type/DeclaredType;
            ldc "getCost"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 31 /* getCost */
        start local 31 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getCost
       289: .line 457
            aload 31 /* getCost */
            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 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.NodeCost:Ljavax/lang/model/type/DeclaredType;
            ldc "MEGAMORPHIC"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findVariableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/VariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/element/VariableElement;)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
       290: .line 459
            aload 14 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 33
            goto 315
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
       291: aload 33
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
            astore 32 /* message */
        start local 32 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       292: .line 460
            aload 30 /* cachedToUncached */
            aload 32 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getExecutable:()Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.cloneNoAnnotations:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 34 /* execute */
        start local 34 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement execute
       293: .line 461
            aload 34 /* execute */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "receiver_"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       294: .line 462
            aload 34 /* execute */
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.removeAbstractModifiers:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
       295: .line 463
            aload 34 /* execute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       296: .line 464
            aload 32 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()Ljava/lang/String;
            ldc "accepts"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 299
       297: .line 465
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.returnTrue:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       298: .line 466
            goto 315
       299: .line 467
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
      StackMap stack:
            aload 34 /* execute */
            aload 4 /* builder */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.addBoundaryOrTransferToInterpreter:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;)V
       300: .line 468
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.isPushEncapsulatingNode:()Z
            istore 35 /* pushEncapsulating */
        start local 35 // boolean pushEncapsulating
       301: .line 470
            iload 35 /* pushEncapsulating */
            ifeq 304
       302: .line 471
            aload 4 /* builder */
            ldc "getParent()"
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.pushEncapsulatingNode:(Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;Ljava/lang/String;)V
       303: .line 472
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startTryBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       304: .line 474
      StackMap locals: int
      StackMap stack:
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "INSTANCE.getUncached(receiver_)"
            aload 34 /* execute */
            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
       305: .line 475
            aload 34 /* execute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 37
            goto 308
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int top java.util.Iterator
      StackMap stack:
       306: aload 37
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 36 /* var */
        start local 36 // javax.lang.model.element.VariableElement var
       307: .line 476
            aload 4 /* builder */
            aload 36 /* var */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 36 // javax.lang.model.element.VariableElement var
       308: .line 475
      StackMap locals:
      StackMap stack:
            aload 37
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 306
       309: .line 478
            aload 4 /* 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
       310: .line 479
            iload 35 /* pushEncapsulating */
            ifeq 314
       311: .line 480
            aload 4 /* 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.startFinallyBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       312: .line 481
            aload 4 /* builder */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.popEncapsulatingNode:(Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;)V
       313: .line 482
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       314: .line 484
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aload 34 /* execute */
            invokestatic com.oracle.truffle.dsl.processor.library.ExportsGenerator.injectCachedAssertions:(Lcom/oracle/truffle/dsl/processor/library/LibraryData;Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
        end local 35 // boolean pushEncapsulating
        end local 34 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement execute
        end local 32 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       315: .line 459
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
            aload 33
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 291
       316: .line 487
            aload 30 /* cachedToUncached */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryGenerator.createGenericCastMethod:(Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.addOptional:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       317: .line 489
            aload 8 /* genClass */
            aload 30 /* cachedToUncached */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       318: .line 492
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aconst_null
            iconst_3
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            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;
            ldc "UncachedDispatch"
            aload 6 /* libraryTypeMirror */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass:(Lcom/oracle/truffle/dsl/processor/model/Template;Lcom/oracle/truffle/dsl/processor/model/TemplateMethod;Ljava/util/Set;Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 32 /* uncachedDispatch */
        start local 32 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement uncachedDispatch
       319: .line 493
            aload 32 /* uncachedDispatch */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node:Ljavax/lang/model/type/DeclaredType;
            ldc "getCost"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 31 /* getCost */
       320: .line 494
            aload 31 /* getCost */
            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 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.NodeCost:Ljavax/lang/model/type/DeclaredType;
            ldc "MEGAMORPHIC"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findVariableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/VariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/element/VariableElement;)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
       321: .line 496
            aload 14 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 34
            goto 337
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement top java.util.Iterator
      StackMap stack:
       322: aload 34
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
            astore 33 /* message */
        start local 33 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       323: .line 497
            aload 32 /* uncachedDispatch */
            aload 33 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getExecutable:()Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.cloneNoAnnotations:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 35 /* execute */
        start local 35 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement execute
       324: .line 498
            aload 35 /* execute */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "receiver_"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       325: .line 499
            aload 35 /* execute */
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.removeAbstractModifiers:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
       326: .line 500
            aload 35 /* execute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       327: .line 501
            aload 35 /* execute */
            aload 4 /* builder */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.addBoundaryOrTransferToInterpreter:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;)V
       328: .line 502
            aload 33 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()Ljava/lang/String;
            ldc "accepts"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 331
       329: .line 503
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.returnTrue:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       330: .line 504
            goto 337
       331: .line 505
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
      StackMap stack:
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "INSTANCE.getUncached(receiver_)"
            aload 35 /* execute */
            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
       332: .line 506
            aload 35 /* execute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 37
            goto 335
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
       333: aload 37
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 36 /* var */
        start local 36 // javax.lang.model.element.VariableElement var
       334: .line 507
            aload 4 /* builder */
            aload 36 /* var */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 36 // javax.lang.model.element.VariableElement var
       335: .line 506
      StackMap locals:
      StackMap stack:
            aload 37
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 333
       336: .line 509
            aload 4 /* 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 35 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement execute
        end local 33 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       337: .line 496
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement top java.util.Iterator
      StackMap stack:
            aload 34
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 322
       338: .line 512
            aload 32 /* uncachedDispatch */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryGenerator.createGenericCastMethod:(Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.addOptional:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       339: .line 514
            aload 32 /* uncachedDispatch */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node:Ljavax/lang/model/type/DeclaredType;
            ldc "isAdoptable"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 33 /* isAdoptable */
        start local 33 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement isAdoptable
       340: .line 515
            aload 33 /* isAdoptable */
            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.returnFalse:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       341: .line 517
            aload 8 /* genClass */
            aload 32 /* uncachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       342: .line 520
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aconst_null
            iconst_3
            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.ABSTRACT:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            ldc "CachedDispatch"
            aload 6 /* libraryTypeMirror */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass:(Lcom/oracle/truffle/dsl/processor/model/Template;Lcom/oracle/truffle/dsl/processor/model/TemplateMethod;Ljava/util/Set;Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 34 /* cachedDispatch */
        start local 34 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cachedDispatch
       343: .line 521
            aload 34 /* cachedDispatch */
            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.ABSTRACT:Ljavax/lang/model/element/Modifier;
            aastore
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers:([Ljavax/lang/model/element/Modifier;)Ljava/util/Set;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "getLimit"
            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
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 35 /* getLimit */
        start local 35 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getLimit
       344: .line 522
            aload 34 /* cachedDispatch */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            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;
            aload 6 /* libraryTypeMirror */
            ldc "library"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            astore 36 /* libraryVar */
        start local 36 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement libraryVar
       345: .line 523
            aload 36 /* libraryVar */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.getAnnotationMirrors:()Ljava/util/List;
            new com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types: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
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       346: .line 524
            aload 34 /* cachedDispatch */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            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;
            aload 34 /* cachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            ldc "next"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            astore 37 /* nextField */
        start local 37 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement nextField
       347: .line 525
            aload 37 /* nextField */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.getAnnotationMirrors:()Ljava/util/List;
            new com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types: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
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       348: .line 526
            aload 34 /* cachedDispatch */
            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;
            aload 34 /* cachedDispatch */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createConstructorUsingFields:(Ljava/util/Set;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       349: .line 527
            aload 14 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 39
            goto 377
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement top java.util.Iterator
      StackMap stack:
       350: aload 39
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
            astore 38 /* message */
        start local 38 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       351: .line 528
            aload 34 /* cachedDispatch */
            aload 38 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getExecutable:()Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.cloneNoAnnotations:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 40 /* execute */
        start local 40 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement execute
       352: .line 529
            aload 40 /* execute */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "receiver_"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       353: .line 530
            aload 40 /* execute */
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.removeAbstractModifiers:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
       354: .line 531
            aload 40 /* execute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       355: .line 532
            aload 38 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()Ljava/lang/String;
            ldc "accepts"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 358
       356: .line 533
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.returnTrue:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       357: .line 534
            goto 377
       358: .line 535
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
      StackMap stack:
            aload 40 /* execute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getAnnotationMirrors:()Ljava/util/List;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryGenerator.createExplodeLoop:()Lcom/oracle/truffle/dsl/processor/java/model/CodeAnnotationMirror;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       359: .line 536
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startDoBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       360: .line 537
            aload 4 /* builder */
            aload 34 /* cachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            ldc "current"
            ldc "this"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       361: .line 538
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startDoBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       362: .line 539
            aload 4 /* builder */
            aload 6 /* libraryTypeMirror */
            ldc "thisLibrary"
            ldc "current.library"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       363: .line 540
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "thisLibrary != null && thisLibrary.accepts(receiver_)"
            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
       364: .line 541
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "thisLibrary"
            aload 40 /* execute */
            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
       365: .line 542
            aload 40 /* execute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 42
            goto 368
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
       366: aload 42
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 41 /* var */
        start local 41 // javax.lang.model.element.VariableElement var
       367: .line 543
            aload 4 /* builder */
            aload 41 /* var */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 41 // javax.lang.model.element.VariableElement var
       368: .line 542
      StackMap locals:
      StackMap stack:
            aload 42
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 366
       369: .line 545
            aload 4 /* 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
       370: .line 546
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       371: .line 547
            aload 4 /* builder */
            ldc "current = current.next"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       372: .line 548
            aload 4 /* 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.startDoWhile:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "current != 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.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       373: .line 549
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.CompilerDirectives:Ljavax/lang/model/type/DeclaredType;
            ldc "transferToInterpreterAndInvalidate"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       374: .line 550
            aload 4 /* builder */
            ldc "specialize(receiver_)"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       375: .line 551
            aload 4 /* 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.startDoWhile:()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
       376: .line 552
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 40 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement execute
        end local 38 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       377: .line 527
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement top java.util.Iterator
      StackMap stack:
            aload 39
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 350
       378: .line 556
            aload 34 /* cachedDispatch */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryGenerator.createGenericCastMethod:(Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.addOptional:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       379: .line 559
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aconst_null
            iconst_3
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            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;
            ldc "CachedDispatchNext"
            aload 34 /* cachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass:(Lcom/oracle/truffle/dsl/processor/model/Template;Lcom/oracle/truffle/dsl/processor/model/TemplateMethod;Ljava/util/Set;Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 38 /* cachedDispatchNext */
        start local 38 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cachedDispatchNext
       380: .line 560
            aload 38 /* cachedDispatchNext */
            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;
            aload 38 /* cachedDispatchNext */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createConstructorUsingFields:(Ljava/util/Set;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       381: .line 561
            aload 38 /* cachedDispatchNext */
            aload 35 /* getLimit */
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 39 /* getLimitNext */
        start local 39 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getLimitNext
       382: .line 562
            aload 39 /* getLimitNext */
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.removeAbstractModifiers:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
       383: .line 563
            aload 39 /* getLimitNext */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       384: .line 564
            aload 4 /* builder */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createShouldNotReachHere:()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
       385: .line 565
            aload 8 /* genClass */
            aload 38 /* cachedDispatchNext */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       386: .line 567
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.NodeCost:Ljavax/lang/model/type/DeclaredType;
            astore 40 /* nodeCost */
        start local 40 // javax.lang.model.type.DeclaredType nodeCost
       387: .line 568
            aload 38 /* cachedDispatchNext */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node:Ljavax/lang/model/type/DeclaredType;
            ldc "getCost"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 31 /* getCost */
       388: .line 569
            aload 31 /* getCost */
            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 40 /* nodeCost */
            ldc "NONE"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findVariableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/VariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/element/VariableElement;)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
       389: .line 572
            aload 34 /* cachedDispatch */
            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.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 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "specialize"
            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
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 41 /* execute */
        start local 41 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement execute
       390: .line 573
            aload 41 /* execute */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getSignatureReceiverType:()Ljavax/lang/model/type/TypeMirror;
            ldc "receiver_"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.addParameter:(Ljavax/lang/model/element/VariableElement;)V
       391: .line 574
            aload 41 /* execute */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       392: .line 575
            aload 4 /* builder */
            aload 34 /* cachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            ldc "current"
            ldc "this"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       393: .line 576
            aload 4 /* builder */
            aload 6 /* libraryTypeMirror */
            ldc "thisLibrary"
            ldc "current.library"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       394: .line 577
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "thisLibrary == 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
       395: .line 578
            aload 4 /* builder */
            ldc "this.library = insert(INSTANCE.create(receiver_))"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       396: .line 579
            aload 4 /* 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.startElseBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       397: .line 580
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/util/concurrent/locks/Lock;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "lock"
            ldc "getLock()"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       398: .line 581
            aload 4 /* builder */
            ldc "lock.lock()"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       399: .line 582
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startTryBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       400: .line 583
            aload 4 /* builder */
            ldc "int"
            ldc "count"
            ldc "0"
            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
       401: .line 584
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startDoBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       402: .line 585
            aload 4 /* builder */
            aload 6 /* libraryTypeMirror */
            ldc "currentLibrary"
            ldc "current.library"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       403: .line 586
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "currentLibrary != null && currentLibrary.accepts(receiver_)"
            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
       404: .line 587
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.returnStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       405: .line 588
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       406: .line 589
            aload 4 /* builder */
            ldc "count++"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       407: .line 590
            aload 4 /* builder */
            ldc "current = current.next"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       408: .line 591
            aload 4 /* 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.startDoWhile:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "current != 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
       409: .line 592
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "count >= getLimit()"
            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
       410: .line 593
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "this.library = insert("
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 30 /* cachedToUncached */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(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;
            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;
            pop
       411: .line 594
            aload 4 /* builder */
            ldc "this.next = null"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       412: .line 595
            aload 4 /* 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.startElseBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       413: .line 596
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "this.next = insert("
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       414: .line 597
            aload 4 /* builder */
            aload 38 /* cachedDispatchNext */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "INSTANCE.create(receiver_)"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "next"
            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
       415: .line 598
            aload 4 /* builder */
            ldc ")"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       416: .line 599
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       417: .line 600
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       418: .line 601
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       419: .line 602
            aload 4 /* 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.startFinallyBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       420: .line 603
            aload 4 /* builder */
            ldc "lock.unlock()"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       421: .line 604
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       422: .line 605
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       423: .line 608
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            aconst_null
            iconst_3
            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.STATIC:Ljavax/lang/model/element/Modifier;
            aastore
            dup
            iconst_2
            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;
            ldc "CachedDispatchFirst"
            aload 34 /* cachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass:(Lcom/oracle/truffle/dsl/processor/model/Template;Lcom/oracle/truffle/dsl/processor/model/TemplateMethod;Ljava/util/Set;Ljava/lang/String;Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 42 /* cachedDispatchFirst */
        start local 42 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cachedDispatchFirst
       424: .line 609
            aload 42 /* cachedDispatchFirst */
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            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;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "limit_"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljava/util/Set;Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            astore 43 /* limit */
        start local 43 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement limit
       425: .line 610
            aload 42 /* cachedDispatchFirst */
            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;
            aload 42 /* cachedDispatchFirst */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createConstructorUsingFields:(Ljava/util/Set;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       426: .line 612
            aload 42 /* cachedDispatchFirst */
            aload 35 /* getLimit */
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 44 /* getLimitFirst */
        start local 44 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getLimitFirst
       427: .line 613
            aload 44 /* getLimitFirst */
            invokestatic com.oracle.truffle.dsl.processor.library.LibraryGenerator.removeAbstractModifiers:(Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
       428: .line 614
            aload 44 /* getLimitFirst */
            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;
            ldc "this."
            aload 43 /* limit */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       429: .line 615
            aload 8 /* genClass */
            aload 42 /* cachedDispatchFirst */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       430: .line 617
            aload 42 /* cachedDispatchFirst */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Node:Ljavax/lang/model/type/DeclaredType;
            ldc "getCost"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 31 /* getCost */
       431: .line 618
            aload 31 /* getCost */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       432: .line 619
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "this.library"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 30 /* cachedToUncached */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()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;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       433: .line 620
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 40 /* nodeCost */
            ldc "MEGAMORPHIC"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findVariableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/VariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/element/VariableElement;)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
       434: .line 621
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       435: .line 622
            aload 4 /* builder */
            aload 34 /* cachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            ldc "current"
            ldc "this"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       436: .line 623
            aload 4 /* builder */
            ldc "int count = 0"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       437: .line 624
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startDoBlock:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       438: .line 625
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "current.library != 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
       439: .line 626
            aload 4 /* builder */
            ldc "count++"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       440: .line 627
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       441: .line 628
            aload 4 /* builder */
            ldc "current = current.next"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       442: .line 629
            aload 4 /* 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.startDoWhile:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "current != 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.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       443: .line 630
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 40 /* nodeCost */
            ldc "fromCount"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "count"
            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
       444: .line 632
            aload 8 /* genClass */
            aload 34 /* cachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       445: .line 634
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "createDispatchImpl"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 45 /* createCachedDispatch */
        start local 45 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createCachedDispatch
       446: .line 635
            aload 45 /* createCachedDispatch */
            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
       447: .line 636
            aload 45 /* createCachedDispatch */
            aload 6 /* libraryTypeMirror */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.setReturnType:(Ljavax/lang/model/type/TypeMirror;)V
       448: .line 637
            aload 45 /* createCachedDispatch */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "limit"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
       449: .line 638
            aload 45 /* createCachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       450: .line 639
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 42 /* cachedDispatchFirst */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "null"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "null"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "limit"
            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
       451: .line 640
            aload 8 /* genClass */
            aload 45 /* createCachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       452: .line 642
            aload 8 /* genClass */
       453: .line 643
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "createUncachedDispatch"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.clone:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
       454: .line 642
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement
            astore 46 /* createUncachedDispatch */
        start local 46 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createUncachedDispatch
       455: .line 644
            aload 46 /* createUncachedDispatch */
            aload 6 /* libraryTypeMirror */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.setReturnType:(Ljavax/lang/model/type/TypeMirror;)V
       456: .line 645
            aload 46 /* createUncachedDispatch */
            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
       457: .line 646
            aload 46 /* createUncachedDispatch */
            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 32 /* uncachedDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(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;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       458: .line 648
            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.PRIVATE: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 8 /* genClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.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
            astore 47 /* implConstructor */
        start local 47 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement implConstructor
       459: .line 649
            aload 8 /* genClass */
            aload 47 /* implConstructor */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
       460: .line 650
            aload 47 /* implConstructor */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 4 /* builder */
       461: .line 651
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       462: .line 652
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startSuperCall:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 11 /* libraryClassLiteral */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.staticReference:(Ljavax/lang/model/element/VariableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       463: .line 653
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/util/Collections;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "unmodifiableList"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       464: .line 654
            aload 4 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/util/Arrays;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            ldc "asList"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       465: .line 655
            aload 14 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 49
            goto 469
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.AnnotationProcessor com.oracle.truffle.dsl.processor.library.LibraryData com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeTypeElement javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.util.List com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int int com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement javax.lang.model.type.DeclaredType com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeVariableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement top java.util.Iterator
      StackMap stack:
       466: aload 49
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
            astore 48 /* message */
        start local 48 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       467: .line 656
            aload 48 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.messageField:Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
            ifnull 469
       468: .line 657
            aload 4 /* builder */
            aconst_null
            aload 48 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.messageField:Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.field:(Ljava/lang/String;Ljavax/lang/model/element/VariableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 48 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
       469: .line 655
      StackMap locals:
      StackMap stack:
            aload 49
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 466
       470: .line 660
            aload 4 /* 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
       471: .line 661
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       472: .line 662
            aload 4 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
       473: .line 664
            aload 8 /* genClass */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.libraryConstants:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.addAll:(Ljava/util/Collection;)V
       474: .line 665
            iconst_1
            anewarray com.oracle.truffle.dsl.processor.java.model.CodeTypeElement
            dup
            iconst_0
            aload 8 /* genClass */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 47 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement implConstructor
        end local 46 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createUncachedDispatch
        end local 45 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createCachedDispatch
        end local 44 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getLimitFirst
        end local 43 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement limit
        end local 42 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cachedDispatchFirst
        end local 41 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement execute
        end local 40 // javax.lang.model.type.DeclaredType nodeCost
        end local 39 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getLimitNext
        end local 38 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cachedDispatchNext
        end local 37 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement nextField
        end local 36 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement libraryVar
        end local 35 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getLimit
        end local 34 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cachedDispatch
        end local 33 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement isAdoptable
        end local 32 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement uncachedDispatch
        end local 31 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getCost
        end local 30 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cachedToUncached
        end local 29 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement delegateIsAdoptable
        end local 28 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement delegateNodeCost
        end local 27 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createDelegate
        end local 26 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement delegateField
        end local 25 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement delegateClass
        end local 24 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createMessageBitSet
        end local 23 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createProxy
        end local 22 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement instance
        end local 21 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement libField
        end local 20 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement proxyClass
        end local 19 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement messageConstructor
        end local 18 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement messageClass
        end local 17 // int index
        end local 16 // boolean elseIf
        end local 15 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement getDefault
        end local 14 // java.util.List methods
        end local 13 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder statics
        end local 12 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement staticsMethod
        end local 11 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement libraryClassLiteral
        end local 10 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement loadLibraryClass
        end local 9 // javax.lang.model.type.TypeMirror classLiteral
        end local 8 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement genClass
        end local 7 // javax.lang.model.type.TypeMirror baseType
        end local 6 // javax.lang.model.type.TypeMirror libraryTypeMirror
        end local 5 // javax.lang.model.element.TypeElement libraryType
        end local 4 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        end local 3 // com.oracle.truffle.dsl.processor.library.LibraryData model1
        end local 2 // com.oracle.truffle.dsl.processor.AnnotationProcessor processor
        end local 1 // com.oracle.truffle.dsl.processor.ProcessorContext context1
        end local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0  475     0                         this  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator;
            0  475     1                     context1  Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            0  475     2                    processor  Lcom/oracle/truffle/dsl/processor/AnnotationProcessor<*>;
            0  475     3                       model1  Lcom/oracle/truffle/dsl/processor/library/LibraryData;
           17  475     4                      builder  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            6  475     5                  libraryType  Ljavax/lang/model/element/TypeElement;
            7  475     6            libraryTypeMirror  Ljavax/lang/model/type/TypeMirror;
           10  475     7                     baseType  Ljavax/lang/model/type/TypeMirror;
           11  475     8                     genClass  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
           14  475     9                 classLiteral  Ljavax/lang/model/type/TypeMirror;
           15  475    10             loadLibraryClass  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           29  475    11          libraryClassLiteral  Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
           31  475    12                staticsMethod  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           32  475    13                      statics  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
           33  475    14                      methods  Ljava/util/List<Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;>;
           34   42    15                 messageIndex  I
           36   40    16                      message  Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
           39   40    17                      objects  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;
           43  475    15                   getDefault  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           48  475    16                       elseIf  Z
           49  475    17                        index  I
           51   72    18                defaultExport  Lcom/oracle/truffle/dsl/processor/library/LibraryDefaultExportData;
           52   72    20  defaultProviderReceiverType  Ljavax/lang/model/type/TypeMirror;
           53   72    21                      ifCount  I
           64   68    22           defaultTypeMirrors  [Ljavax/lang/model/type/TypeMirror;
           75  475    18                 messageClass  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
           77  475    19           messageConstructor  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           88  475    20                   proxyClass  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
           90  475    21                     libField  Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
           95  108    22                      message  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;
          101  108    24                       method  Ljavax/lang/model/element/ExecutableElement;
          103  107    25                            i  I
          110  475    22                     instance  Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
          117  123    23             createAssertions  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          124  475    23                  createProxy  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          131  192    24                      message  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;
          132  192    26                  executeImpl  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          138  192    27                uncheckedCast  Z
          150  190    28            executeParameters  Ljava/util/List<Ljavax/lang/model/element/VariableElement;>;
          152  158    29                        param  Ljavax/lang/model/element/VariableElement;
          162  190    29               exceptionTypes  Ljava/util/List<Ljavax/lang/model/type/TypeMirror;>;
          163  190    30             runtimeException  Ljavax/lang/model/type/TypeMirror;
          165  190    31                       remove  Ljava/util/Set<Ljavax/lang/model/type/TypeMirror;>;
          167  173    32                        type1  Ljavax/lang/model/type/TypeMirror;
          169  172    34                        type2  Ljavax/lang/model/type/TypeMirror;
          176  190    32                exceptionType  Ljavax/lang/model/type/TypeMirror;
          177  190    33                  fallThrough  Z
          179  182    34                   thrownType  Ljavax/lang/model/type/TypeMirror;
          194  475    24          createMessageBitSet  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          211  475    25                delegateClass  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
          213  475    26                delegateField  Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
          216  475    27               createDelegate  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          225  279    28                      message  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;
          226  279    30                  executeImpl  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          232  279    31                uncheckedCast  Z
          261  262    32                        param  Ljavax/lang/model/element/VariableElement;
          272  273    32                        param  Ljavax/lang/model/element/VariableElement;
          281  475    28             delegateNodeCost  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          284  475    29          delegateIsAdoptable  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          288  475    30             cachedToUncached  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
          289  475    31                      getCost  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          292  315    32                      message  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;
          293  315    34                      execute  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          301  315    35            pushEncapsulating  Z
          307  308    36                          var  Ljavax/lang/model/element/VariableElement;
          319  475    32             uncachedDispatch  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
          323  337    33                      message  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;
          324  337    35                      execute  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          334  335    36                          var  Ljavax/lang/model/element/VariableElement;
          340  475    33                  isAdoptable  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          343  475    34               cachedDispatch  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
          344  475    35                     getLimit  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          345  475    36                   libraryVar  Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
          347  475    37                    nextField  Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
          351  377    38                      message  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;
          352  377    40                      execute  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          367  368    41                          var  Ljavax/lang/model/element/VariableElement;
          380  475    38           cachedDispatchNext  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
          382  475    39                 getLimitNext  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          387  475    40                     nodeCost  Ljavax/lang/model/type/DeclaredType;
          390  475    41                      execute  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          424  475    42          cachedDispatchFirst  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
          425  475    43                        limit  Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
          427  475    44                getLimitFirst  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          446  475    45         createCachedDispatch  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          455  475    46       createUncachedDispatch  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          459  475    47              implConstructor  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
          467  469    48                      message  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;
    Signature: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/AnnotationProcessor<*>;Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Ljava/util/List<Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;>;
    MethodParameters:
           Name  Flags
      context1   
      processor  
      model1     

  private javax.lang.model.type.TypeMirror[] createDefaultImpl(com.oracle.truffle.dsl.processor.java.model.CodeTypeElement);
    descriptor: (Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)[Ljavax/lang/model/type/TypeMirror;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
        start local 1 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement genClass
         0: .line 669
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getObjectExports:()Lcom/oracle/truffle/dsl/processor/library/ExportsLibrary;
            astore 2 /* defaultExportsLibrary */
        start local 2 // com.oracle.truffle.dsl.processor.library.ExportsLibrary defaultExportsLibrary
         1: .line 670
            aload 2 /* defaultExportsLibrary */
            ifnonnull 3
         2: .line 671
            aconst_null
            areturn
         3: .line 674
      StackMap locals: com.oracle.truffle.dsl.processor.library.ExportsLibrary
      StackMap stack:
            new com.oracle.truffle.dsl.processor.library.ExportsGenerator
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.libraryConstants:Ljava/util/Map;
            invokespecial com.oracle.truffle.dsl.processor.library.ExportsGenerator.<init>:(Ljava/util/Map;)V
            astore 3 /* exportGenerator */
        start local 3 // com.oracle.truffle.dsl.processor.library.ExportsGenerator exportGenerator
         4: .line 675
            aload 2 /* defaultExportsLibrary */
            invokevirtual com.oracle.truffle.dsl.processor.library.ExportsLibrary.getExportedMessages:()Ljava/util/Map;
            astore 4 /* messages */
        start local 4 // java.util.Map messages
         5: .line 676
            aload 3 /* exportGenerator */
            aload 2 /* defaultExportsLibrary */
            aload 4 /* messages */
            invokevirtual com.oracle.truffle.dsl.processor.library.ExportsGenerator.createUncached:(Lcom/oracle/truffle/dsl/processor/library/ExportsLibrary;Ljava/util/Map;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 5 /* uncachedClass */
        start local 5 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement uncachedClass
         6: .line 677
            aload 3 /* exportGenerator */
            aload 2 /* defaultExportsLibrary */
            aload 4 /* messages */
            invokevirtual com.oracle.truffle.dsl.processor.library.ExportsGenerator.createCached:(Lcom/oracle/truffle/dsl/processor/library/ExportsLibrary;Ljava/util/Map;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 6 /* cacheClass */
        start local 6 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cacheClass
         7: .line 679
            aload 3 /* exportGenerator */
            aload 2 /* defaultExportsLibrary */
            aload 4 /* messages */
            ldc "Default"
            aload 6 /* cacheClass */
            aload 5 /* uncachedClass */
            invokevirtual com.oracle.truffle.dsl.processor.library.ExportsGenerator.createResolvedExports:(Lcom/oracle/truffle/dsl/processor/library/ExportsLibrary;Ljava/util/Map;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            astore 7 /* resolvedExports */
        start local 7 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement resolvedExports
         8: .line 680
            aload 7 /* resolvedExports */
            aload 6 /* cacheClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
         9: .line 681
            aload 7 /* resolvedExports */
            aload 5 /* uncachedClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        10: .line 683
            aload 1 /* genClass */
            aload 7 /* resolvedExports */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.add:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/Element;
            pop
        11: .line 685
            iconst_2
            anewarray javax.lang.model.type.TypeMirror
            dup
            iconst_0
            aload 2 /* defaultExportsLibrary */
            invokevirtual com.oracle.truffle.dsl.processor.library.ExportsLibrary.getTemplateType:()Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            aastore
            dup
            iconst_1
            aload 7 /* resolvedExports */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            aastore
            areturn
        end local 7 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement resolvedExports
        end local 6 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement cacheClass
        end local 5 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement uncachedClass
        end local 4 // java.util.Map messages
        end local 3 // com.oracle.truffle.dsl.processor.library.ExportsGenerator exportGenerator
        end local 2 // com.oracle.truffle.dsl.processor.library.ExportsLibrary defaultExportsLibrary
        end local 1 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement genClass
        end local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   12     0                   this  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator;
            0   12     1               genClass  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            1   12     2  defaultExportsLibrary  Lcom/oracle/truffle/dsl/processor/library/ExportsLibrary;
            4   12     3        exportGenerator  Lcom/oracle/truffle/dsl/processor/library/ExportsGenerator;
            5   12     4               messages  Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/library/ExportMessageData;>;
            6   12     5          uncachedClass  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            7   12     6             cacheClass  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            8   12     7        resolvedExports  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
    MethodParameters:
          Name  Flags
      genClass  

  static com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror createSuppressWarningsUnchecked(com.oracle.truffle.dsl.processor.ProcessorContext);
    descriptor: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;)Lcom/oracle/truffle/dsl/processor/java/model/CodeAnnotationMirror;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=2, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.ProcessorContext context
         0: .line 689
            new com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror
            dup
            aload 0 /* context */
            ldc Ljava/lang/SuppressWarnings;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getDeclaredType:(Ljava/lang/Class;)Ljavax/lang/model/type/DeclaredType;
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror.<init>:(Ljavax/lang/model/type/DeclaredType;)V
            astore 1 /* suppressWarnings */
        start local 1 // com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror suppressWarnings
         1: .line 690
            aload 1 /* suppressWarnings */
            aload 1 /* suppressWarnings */
            ldc "value"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror.findExecutableElement:(Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            new com.oracle.truffle.dsl.processor.java.model.CodeAnnotationValue
            dup
            iconst_1
            anewarray com.oracle.truffle.dsl.processor.java.model.CodeAnnotationValue
            dup
            iconst_0
            new com.oracle.truffle.dsl.processor.java.model.CodeAnnotationValue
            dup
            ldc "unchecked"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeAnnotationValue.<init>:(Ljava/lang/Object;)V
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeAnnotationValue.<init>:(Ljava/lang/Object;)V
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror.setElementValue:(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/element/AnnotationValue;)V
         2: .line 691
            aload 1 /* suppressWarnings */
            areturn
        end local 1 // com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror suppressWarnings
        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;
            1    3     1  suppressWarnings  Lcom/oracle/truffle/dsl/processor/java/model/CodeAnnotationMirror;
    MethodParameters:
         Name  Flags
      context  

  private com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createGenericCastMethod(com.oracle.truffle.dsl.processor.library.LibraryData);
    descriptor: (Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
        start local 1 // com.oracle.truffle.dsl.processor.library.LibraryData library
         0: .line 695
            aload 1 /* library */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.isDynamicDispatch:()Z
            ifne 2
         1: .line 696
            aconst_null
            areturn
         2: .line 699
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.DynamicDispatchLibrary:Ljavax/lang/model/type/DeclaredType;
            ldc "cast"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findMethod:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.cloneNoAnnotations:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 3 /* castMethod */
        start local 3 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement castMethod
         3: .line 700
            aload 3 /* castMethod */
            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
         4: .line 701
            aload 3 /* castMethod */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "receiver"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
         5: .line 702
            aload 3 /* castMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 2 /* builder */
        start local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
         6: .line 703
            aload 2 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "receiver"
            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
         7: .line 704
            aload 3 /* castMethod */
            areturn
        end local 3 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement castMethod
        end local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        end local 1 // com.oracle.truffle.dsl.processor.library.LibraryData library
        end local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator;
            0    8     1     library  Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            6    8     2     builder  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            3    8     3  castMethod  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    MethodParameters:
         Name  Flags
      library  

  private com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createDelegateCastMethod(com.oracle.truffle.dsl.processor.library.LibraryData);
    descriptor: (Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
        start local 1 // com.oracle.truffle.dsl.processor.library.LibraryData library
         0: .line 708
            aload 1 /* library */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.isDynamicDispatch:()Z
            ifne 2
         1: .line 709
            aconst_null
            areturn
         2: .line 712
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.DynamicDispatchLibrary:Ljavax/lang/model/type/DeclaredType;
            ldc "cast"
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findMethod:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Ljavax/lang/model/element/ExecutableElement;
            invokestatic com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.cloneNoAnnotations:(Ljavax/lang/model/element/ExecutableElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 3 /* castMethod */
        start local 3 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement castMethod
         3: .line 713
            aload 3 /* castMethod */
            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
         4: .line 714
            aload 3 /* castMethod */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "receiver"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
         5: .line 715
            aload 3 /* castMethod */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 2 /* builder */
        start local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
         6: .line 716
            aload 2 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "delegateLibrary.cast(receiver)"
            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
         7: .line 717
            aload 3 /* castMethod */
            areturn
        end local 3 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement castMethod
        end local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        end local 1 // com.oracle.truffle.dsl.processor.library.LibraryData library
        end local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator;
            0    8     1     library  Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            6    8     2     builder  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            3    8     3  castMethod  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    MethodParameters:
         Name  Flags
      library  

  private static void injectReceiverType(com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement, int, javax.lang.model.type.TypeMirror);
    descriptor: (Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;ILjavax/lang/model/type/TypeMirror;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement method
        start local 1 // int receiverIndex
        start local 2 // javax.lang.model.type.TypeMirror type
         0: .line 721
            aload 2 /* type */
            ifnonnull 2
         1: .line 722
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 724
      StackMap locals:
      StackMap stack:
            aload 0 /* method */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            iload 1 /* receiverIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            astore 3 /* receiverParameter */
        start local 3 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement receiverParameter
         3: .line 725
            aconst_null
            astore 4 /* foundParameter */
        start local 4 // javax.lang.model.element.TypeParameterElement foundParameter
         4: .line 726
            iconst_0
            istore 5 /* foundIndex */
        start local 5 // int foundIndex
         5: .line 727
            aload 3 /* receiverParameter */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.TYPEVAR:Ljavax/lang/model/type/TypeKind;
            if_acmpne 13
         6: .line 728
            aload 0 /* method */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getTypeParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 12
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeVariableElement javax.lang.model.element.TypeParameterElement int top java.util.Iterator
      StackMap stack:
         7: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.TypeParameterElement
            astore 6 /* typeParameter */
        start local 6 // javax.lang.model.element.TypeParameterElement typeParameter
         8: .line 729
            aload 3 /* receiverParameter */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.TypeVariable
            invokeinterface javax.lang.model.type.TypeVariable.asElement:()Ljavax/lang/model/element/Element;
            aload 6 /* typeParameter */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.elementEquals:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/Element;)Z
            ifeq 11
         9: .line 730
            aload 6 /* typeParameter */
            astore 4 /* foundParameter */
        10: .line 731
            goto 13
        11: .line 733
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeVariableElement javax.lang.model.element.TypeParameterElement int javax.lang.model.element.TypeParameterElement java.util.Iterator
      StackMap stack:
            iinc 5 /* foundIndex */ 1
        end local 6 // javax.lang.model.element.TypeParameterElement typeParameter
        12: .line 728
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeVariableElement javax.lang.model.element.TypeParameterElement int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        13: .line 736
      StackMap locals: com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int javax.lang.model.type.TypeMirror com.oracle.truffle.dsl.processor.java.model.CodeVariableElement javax.lang.model.element.TypeParameterElement int
      StackMap stack:
            aload 4 /* foundParameter */
            ifnull 18
        14: .line 737
            new com.oracle.truffle.dsl.processor.java.model.CodeTypeParameterElement
            dup
            aload 4 /* foundParameter */
            invokeinterface javax.lang.model.element.TypeParameterElement.getSimpleName:()Ljavax/lang/model/element/Name;
            iconst_0
            anewarray javax.lang.model.type.TypeMirror
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeTypeParameterElement.<init>:(Ljavax/lang/model/element/Name;[Ljavax/lang/model/type/TypeMirror;)V
            astore 6 /* newParameter */
        start local 6 // com.oracle.truffle.dsl.processor.java.model.CodeTypeParameterElement newParameter
        15: .line 738
            aload 6 /* newParameter */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeParameterElement.getBounds:()Ljava/util/List;
            aload 2 /* type */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 739
            aload 0 /* method */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getTypeParameters:()Ljava/util/List;
            iload 5 /* foundIndex */
            aload 6 /* newParameter */
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // com.oracle.truffle.dsl.processor.java.model.CodeTypeParameterElement newParameter
        17: .line 740
            goto 19
        18: .line 741
      StackMap locals:
      StackMap stack:
            aload 3 /* receiverParameter */
            aload 2 /* type */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.setType:(Ljavax/lang/model/type/TypeMirror;)V
        19: .line 743
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int foundIndex
        end local 4 // javax.lang.model.element.TypeParameterElement foundParameter
        end local 3 // com.oracle.truffle.dsl.processor.java.model.CodeVariableElement receiverParameter
        end local 2 // javax.lang.model.type.TypeMirror type
        end local 1 // int receiverIndex
        end local 0 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement method
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   20     0             method  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            0   20     1      receiverIndex  I
            0   20     2               type  Ljavax/lang/model/type/TypeMirror;
            3   20     3  receiverParameter  Lcom/oracle/truffle/dsl/processor/java/model/CodeVariableElement;
            4   20     4     foundParameter  Ljavax/lang/model/element/TypeParameterElement;
            5   20     5         foundIndex  I
            8   12     6      typeParameter  Ljavax/lang/model/element/TypeParameterElement;
           15   17     6       newParameter  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeParameterElement;
    MethodParameters:
               Name  Flags
      method         
      receiverIndex  
      type           

  private static void removeAbstractModifiers(com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement);
    descriptor: (Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement uncachedImpl
         0: .line 746
            aload 0 /* uncachedImpl */
            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
         1: .line 747
            aload 0 /* uncachedImpl */
            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
         2: .line 748
            return
        end local 0 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement uncachedImpl
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  uncachedImpl  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    MethodParameters:
              Name  Flags
      uncachedImpl  

  private static java.lang.String createConstantName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.lang.String name
         0: .line 751
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* newName */
        start local 1 // java.lang.StringBuilder newName
         1: .line 752
            iconst_0
            istore 2 /* wasLowerCase */
        start local 2 // boolean wasLowerCase
         2: .line 753
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 13
         4: .line 754
      StackMap locals: java.lang.StringBuilder int int
      StackMap stack:
            aload 0 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         5: .line 755
            iload 4 /* c */
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 10
         6: .line 756
            iload 2 /* wasLowerCase */
            ifeq 8
         7: .line 757
            aload 1 /* newName */
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 759
      StackMap locals: int
      StackMap stack:
            aload 1 /* newName */
            iload 4 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 760
            goto 12
        10: .line 761
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* wasLowerCase */
        11: .line 762
            aload 1 /* newName */
            iload 4 /* c */
            invokestatic java.lang.Character.toUpperCase:(C)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // char c
        12: .line 753
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            if_icmplt 4
        end local 3 // int i
        14: .line 765
            aload 1 /* newName */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // boolean wasLowerCase
        end local 1 // java.lang.StringBuilder newName
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          name  Ljava/lang/String;
            1   15     1       newName  Ljava/lang/StringBuilder;
            2   15     2  wasLowerCase  Z
            3   14     3             i  I
            5   12     4             c  C
    MethodParameters:
      Name  Flags
      name  

  private com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror createExplodeLoop();
    descriptor: ()Lcom/oracle/truffle/dsl/processor/java/model/CodeAnnotationMirror;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
         0: .line 769
            new com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.ExplodeLoop:Ljavax/lang/model/type/DeclaredType;
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror.<init>:(Ljavax/lang/model/type/DeclaredType;)V
            areturn
        end local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator;

  private com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement createGenericDispatch(java.util.List<com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects>, com.oracle.truffle.dsl.processor.java.model.CodeTypeElement);
    descriptor: (Ljava/util/List;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
        start local 1 // java.util.List methods
        start local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement messageClass
         0: .line 774
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "genericDispatch"
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.override:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
            astore 4 /* reflectionGenericDispatch */
        start local 4 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement reflectionGenericDispatch
         1: .line 775
            aload 4 /* reflectionGenericDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getParameters:()Ljava/util/List;
            iconst_0
            new com.oracle.truffle.dsl.processor.java.model.CodeVariableElement
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.Library:Ljavax/lang/model/type/DeclaredType;
            ldc "library"
            invokespecial com.oracle.truffle.dsl.processor.java.model.CodeVariableElement.<init>:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)V
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 776
            aload 4 /* reflectionGenericDispatch */
            iconst_5
            anewarray java.lang.String
            dup
            iconst_0
            ldc "originalLib"
            aastore
            dup
            iconst_1
            ldc "receiver"
            aastore
            dup
            iconst_2
            ldc "message"
            aastore
            dup
            iconst_3
            ldc "args"
            aastore
            dup
            iconst_4
            ldc "offset"
            aastore
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.renameArguments:([Ljava/lang/String;)V
         3: .line 777
            aload 4 /* reflectionGenericDispatch */
            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
         4: .line 778
            aload 4 /* reflectionGenericDispatch */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            astore 3 /* builder */
        start local 3 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
         5: .line 779
            aload 3 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getTemplateType:()Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            ldc "lib"
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.create:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getTemplateType:()Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.cast:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "originalLib"
            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.declaration:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
         6: .line 780
            aload 3 /* builder */
            aload 2 /* messageClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            ldc "messageImpl"
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.create:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 2 /* messageClass */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.cast:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "message"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.build:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTree;
            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
         7: .line 781
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIf:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "messageImpl.getParameterCount() - 1 != args.length - offset"
            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
         8: .line 782
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.CompilerDirectives:Ljavax/lang/model/type/DeclaredType;
            ldc "transferToInterpreterAndInvalidate"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
         9: .line 783
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startThrow:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/IllegalArgumentException;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "Invalid number of arguments."
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        10: .line 784
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        11: .line 785
            iconst_0
            istore 5 /* uncheckedCast */
        start local 5 // boolean uncheckedCast
        12: .line 786
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startSwitch:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "messageImpl.index"
            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
        13: .line 787
            aload 1 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 53
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator java.util.List com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int top java.util.Iterator
      StackMap stack:
        14: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
            astore 6 /* message */
        start local 6 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
        15: .line 788
            aload 6 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()Ljava/lang/String;
            ldc "accepts"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 789
            goto 53
        17: .line 791
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator java.util.List com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator
      StackMap stack:
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startCase:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        18: .line 792
            aload 3 /* builder */
            aload 6 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.messageIndex:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        19: .line 793
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startIndention:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        20: .line 794
            aload 6 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getExecutable:()Ljavax/lang/model/element/ExecutableElement;
            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 23
        21: .line 795
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStatement:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        22: .line 796
            goto 24
        23: .line 797
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        24: .line 799
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            ldc "lib"
            aload 6 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getName:()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
        25: .line 800
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        26: .line 801
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Object;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getSignatureReceiverType:()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
            ifne 30
        27: .line 802
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getSignatureReceiverType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.hasGenericTypes:(Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 29
        28: .line 803
            iconst_1
            istore 5 /* uncheckedCast */
        29: .line 805
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.model:Lcom/oracle/truffle/dsl/processor/library/LibraryData;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getSignatureReceiverType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.cast:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        30: .line 807
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            ldc "receiver"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        31: .line 808
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        32: .line 809
            iconst_0
            istore 8 /* argumentIndex */
        start local 8 // int argumentIndex
        33: .line 810
            aload 6 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getExecutable:()Ljavax/lang/model/element/ExecutableElement;
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            astore 9 /* parameters */
        start local 9 // java.util.List parameters
        34: .line 811
            aload 9 /* parameters */
            iconst_1
            aload 9 /* parameters */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 48
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator java.util.List com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator int java.util.List top java.util.Iterator
      StackMap stack:
        35: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 10 /* parameter */
        start local 10 // javax.lang.model.element.VariableElement parameter
        36: .line 812
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        37: .line 813
            aload 10 /* parameter */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 12 /* type */
        start local 12 // javax.lang.model.type.TypeMirror type
        38: .line 814
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/Object;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            aload 12 /* type */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 42
        39: .line 815
            aload 12 /* type */
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.hasGenericTypes:(Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 41
        40: .line 816
            iconst_1
            istore 5 /* uncheckedCast */
        41: .line 818
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator java.util.List com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator int java.util.List javax.lang.model.element.VariableElement java.util.Iterator javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 3 /* builder */
            aload 12 /* type */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.cast:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        42: .line 820
      StackMap locals:
      StackMap stack:
            iload 8 /* argumentIndex */
            ifne 45
        43: .line 821
            aload 3 /* builder */
            ldc "args[offset]"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        44: .line 822
            goto 46
        45: .line 823
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            ldc "args[offset + "
            iload 8 /* argumentIndex */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            ldc "]"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        46: .line 825
      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
        47: .line 826
            iinc 8 /* argumentIndex */ 1
        end local 12 // javax.lang.model.type.TypeMirror type
        end local 10 // javax.lang.model.element.VariableElement parameter
        48: .line 811
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator java.util.List com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator int java.util.List top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 35
        49: .line 828
            aload 3 /* 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
        50: .line 829
            aload 6 /* message */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects.model:Lcom/oracle/truffle/dsl/processor/library/LibraryMessage;
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryMessage.getExecutable:()Ljavax/lang/model/element/ExecutableElement;
            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 52
        51: .line 830
            aload 3 /* builder */
            ldc "return null"
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.statement:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        52: .line 832
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator java.util.List com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects java.util.Iterator int java.util.List
      StackMap stack:
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        end local 9 // java.util.List parameters
        end local 8 // int argumentIndex
        end local 6 // com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects message
        53: .line 787
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator java.util.List com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        54: .line 834
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            pop
        55: .line 835
            aload 3 /* builder */
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createTransferToInterpreterAndInvalidate:()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
        56: .line 836
            aload 3 /* builder */
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startThrow:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.library.LibraryGenerator.context:Lcom/oracle/truffle/dsl/processor/ProcessorContext;
            ldc Ljava/lang/AbstractMethodError;
            invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            ldc "message.toString()"
            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
        57: .line 838
            iload 5 /* uncheckedCast */
            ifeq 59
        58: .line 839
            aload 4 /* reflectionGenericDispatch */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "unchecked"
            aastore
            invokestatic com.oracle.truffle.dsl.processor.generator.GeneratorUtils.mergeSupressWarnings:(Lcom/oracle/truffle/dsl/processor/java/model/CodeElement;[Ljava/lang/String;)V
        59: .line 842
      StackMap locals: com.oracle.truffle.dsl.processor.library.LibraryGenerator java.util.List com.oracle.truffle.dsl.processor.java.model.CodeTypeElement com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement int
      StackMap stack:
            aload 4 /* reflectionGenericDispatch */
            areturn
        end local 5 // boolean uncheckedCast
        end local 4 // com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement reflectionGenericDispatch
        end local 3 // com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder builder
        end local 2 // com.oracle.truffle.dsl.processor.java.model.CodeTypeElement messageClass
        end local 1 // java.util.List methods
        end local 0 // com.oracle.truffle.dsl.processor.library.LibraryGenerator this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   60     0                       this  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator;
            0   60     1                    methods  Ljava/util/List<Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;>;
            0   60     2               messageClass  Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;
            5   60     3                    builder  Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
            1   60     4  reflectionGenericDispatch  Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
           12   60     5              uncheckedCast  Z
           15   53     6                    message  Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;
           33   53     8              argumentIndex  I
           34   53     9                 parameters  Ljava/util/List<+Ljavax/lang/model/element/VariableElement;>;
           36   48    10                  parameter  Ljavax/lang/model/element/VariableElement;
           38   48    12                       type  Ljavax/lang/model/type/TypeMirror;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/dsl/processor/library/LibraryGenerator$MessageObjects;>;Lcom/oracle/truffle/dsl/processor/java/model/CodeTypeElement;)Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
    MethodParameters:
              Name  Flags
      methods       
      messageClass  

  static java.lang.String createGenTypeName(com.oracle.truffle.dsl.processor.library.LibraryData);
    descriptor: (Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.library.LibraryData type
         0: .line 846
            new java.lang.StringBuilder
            dup
            aload 0 /* type */
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryData.getTemplateType:()Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.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;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Gen"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.dsl.processor.library.LibraryData type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Lcom/oracle/truffle/dsl/processor/library/LibraryData;
    MethodParameters:
      Name  Flags
      type  

  public java.util.List create(com.oracle.truffle.dsl.processor.ProcessorContext, com.oracle.truffle.dsl.processor.AnnotationProcessor, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/AnnotationProcessor;Ljava/lang/Object;)Ljava/util/List;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            aload 3
            checkcast com.oracle.truffle.dsl.processor.library.LibraryData
            invokevirtual com.oracle.truffle.dsl.processor.library.LibraryGenerator.create:(Lcom/oracle/truffle/dsl/processor/ProcessorContext;Lcom/oracle/truffle/dsl/processor/AnnotationProcessor;Lcom/oracle/truffle/dsl/processor/library/LibraryData;)Ljava/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lcom/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory<Lcom/oracle/truffle/dsl/processor/library/LibraryData;>;
SourceFile: "LibraryGenerator.java"
NestMembers:
  com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects
InnerClasses:
  public DeclaredCodeTypeMirror = com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror$DeclaredCodeTypeMirror of com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror
  MessageObjects = com.oracle.truffle.dsl.processor.library.LibraryGenerator$MessageObjects of com.oracle.truffle.dsl.processor.library.LibraryGenerator