public class com.oracle.graal.python.processor.ConverterFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.graal.python.processor.ConverterFactory
  super_class: java.lang.Object
{
  public static final java.lang.String CLINIC_PACKAGE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.oracle.graal.python.nodes.function.builtins.clinic"

  private static final java.util.Map<javax.lang.model.element.TypeElement, com.oracle.graal.python.processor.ConverterFactory> cache;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljavax/lang/model/element/TypeElement;Lcom/oracle/graal/python/processor/ConverterFactory;>;

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinBoolean;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinString;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinStringWithDefaultValue;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinInt;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinCodePoint;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinBuffer;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinIndex;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinSliceIndex;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinNone;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.oracle.graal.python.processor.ConverterFactory BuiltinDouble;
    descriptor: Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public final java.lang.String fullClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final java.lang.String className;
    descriptor: Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final java.lang.String methodName;
    descriptor: Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final int extraParamCount;
    descriptor: I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final com.oracle.graal.python.processor.ConverterFactory$Param[] params;
    descriptor: [Lcom/oracle/graal/python/processor/ConverterFactory$Param;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final com.oracle.graal.python.annotations.ArgumentClinic$PrimitiveType[] acceptedPrimitiveTypes;
    descriptor: [Lcom/oracle/graal/python/annotations/ArgumentClinic$PrimitiveType;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

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

  private static volatile int[] $SWITCH_TABLE$com$oracle$graal$python$annotations$ArgumentClinic$ClinicConversion;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 58
            ldc Lcom/oracle/graal/python/processor/ConverterFactory;
            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.graal.python.processor.ConverterFactory.$assertionsDisabled:Z
         3: .line 88
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic com.oracle.graal.python.processor.ConverterFactory.cache:Ljava/util/Map;
         4: .line 99
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String, java.lang.String, java.lang.String, int, com.oracle.graal.python.processor.ConverterFactory$Param[], com.oracle.graal.python.annotations.ArgumentClinic$PrimitiveType[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I[Lcom/oracle/graal/python/processor/ConverterFactory$Param;[Lcom/oracle/graal/python/annotations/ArgumentClinic$PrimitiveType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // com.oracle.graal.python.processor.ConverterFactory this
        start local 1 // java.lang.String fullClassName
        start local 2 // java.lang.String className
        start local 3 // java.lang.String methodName
        start local 4 // int extraParamCount
        start local 5 // com.oracle.graal.python.processor.ConverterFactory$Param[] params
        start local 6 // com.oracle.graal.python.annotations.ArgumentClinic$PrimitiveType[] acceptedPrimitiveTypes
         0: .line 108
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 109
            aload 0 /* this */
            aload 1 /* fullClassName */
            putfield com.oracle.graal.python.processor.ConverterFactory.fullClassName:Ljava/lang/String;
         2: .line 110
            aload 0 /* this */
            aload 2 /* className */
            putfield com.oracle.graal.python.processor.ConverterFactory.className:Ljava/lang/String;
         3: .line 111
            aload 0 /* this */
            aload 3 /* methodName */
            putfield com.oracle.graal.python.processor.ConverterFactory.methodName:Ljava/lang/String;
         4: .line 112
            aload 0 /* this */
            iload 4 /* extraParamCount */
            putfield com.oracle.graal.python.processor.ConverterFactory.extraParamCount:I
         5: .line 113
            aload 0 /* this */
            aload 5 /* params */
            putfield com.oracle.graal.python.processor.ConverterFactory.params:[Lcom/oracle/graal/python/processor/ConverterFactory$Param;
         6: .line 114
            aload 0 /* this */
            aload 6 /* acceptedPrimitiveTypes */
            putfield com.oracle.graal.python.processor.ConverterFactory.acceptedPrimitiveTypes:[Lcom/oracle/graal/python/annotations/ArgumentClinic$PrimitiveType;
         7: .line 115
            return
        end local 6 // com.oracle.graal.python.annotations.ArgumentClinic$PrimitiveType[] acceptedPrimitiveTypes
        end local 5 // com.oracle.graal.python.processor.ConverterFactory$Param[] params
        end local 4 // int extraParamCount
        end local 3 // java.lang.String methodName
        end local 2 // java.lang.String className
        end local 1 // java.lang.String fullClassName
        end local 0 // com.oracle.graal.python.processor.ConverterFactory this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    8     0                    this  Lcom/oracle/graal/python/processor/ConverterFactory;
            0    8     1           fullClassName  Ljava/lang/String;
            0    8     2               className  Ljava/lang/String;
            0    8     3              methodName  Ljava/lang/String;
            0    8     4         extraParamCount  I
            0    8     5                  params  [Lcom/oracle/graal/python/processor/ConverterFactory$Param;
            0    8     6  acceptedPrimitiveTypes  [Lcom/oracle/graal/python/annotations/ArgumentClinic$PrimitiveType;
    MethodParameters:
                        Name  Flags
      fullClassName           
      className               
      methodName              
      extraParamCount         
      params                  
      acceptedPrimitiveTypes  

  public static com.oracle.graal.python.processor.ConverterFactory getBuiltin(com.oracle.graal.python.annotations.ArgumentClinic);
    descriptor: (Lcom/oracle/graal/python/annotations/ArgumentClinic;)Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.annotations.ArgumentClinic annotation
         0: .line 118
            invokestatic com.oracle.graal.python.processor.ConverterFactory.$SWITCH_TABLE$com$oracle$graal$python$annotations$ArgumentClinic$ClinicConversion:()[I
            aload 0 /* annotation */
            invokeinterface com.oracle.graal.python.annotations.ArgumentClinic.conversion:()Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            iaload
            tableswitch { // 1 - 9
                    1: 11
                    2: 1
                    3: 2
                    4: 5
                    5: 9
                    6: 10
                    7: 7
                    8: 8
                    9: 6
              default: 13
          }
         1: .line 120
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinBoolean:Lcom/oracle/graal/python/processor/ConverterFactory;
            areturn
         2: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* annotation */
            invokeinterface com.oracle.graal.python.annotations.ArgumentClinic.defaultValue:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 3
            getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinString:Lcom/oracle/graal/python/processor/ConverterFactory;
            goto 4
      StackMap locals:
      StackMap stack:
         3: getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinStringWithDefaultValue:Lcom/oracle/graal/python/processor/ConverterFactory;
      StackMap locals:
      StackMap stack: com.oracle.graal.python.processor.ConverterFactory
         4: areturn
         5: .line 124
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinInt:Lcom/oracle/graal/python/processor/ConverterFactory;
            areturn
         6: .line 126
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinDouble:Lcom/oracle/graal/python/processor/ConverterFactory;
            areturn
         7: .line 128
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinCodePoint:Lcom/oracle/graal/python/processor/ConverterFactory;
            areturn
         8: .line 130
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinBuffer:Lcom/oracle/graal/python/processor/ConverterFactory;
            areturn
         9: .line 132
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinIndex:Lcom/oracle/graal/python/processor/ConverterFactory;
            areturn
        10: .line 134
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinSliceIndex:Lcom/oracle/graal/python/processor/ConverterFactory;
            areturn
        11: .line 136
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.$assertionsDisabled:Z
            ifne 12
            aload 0 /* annotation */
            invokeinterface com.oracle.graal.python.annotations.ArgumentClinic.defaultValue:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 137
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinNone:Lcom/oracle/graal/python/processor/ConverterFactory;
            areturn
        13: .line 139
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* annotation */
            invokeinterface com.oracle.graal.python.annotations.ArgumentClinic.conversion:()Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.graal.python.annotations.ArgumentClinic annotation
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0  annotation  Lcom/oracle/graal/python/annotations/ArgumentClinic;
    MethodParameters:
            Name  Flags
      annotation  

  public static com.oracle.graal.python.processor.ConverterFactory getForClass(javax.lang.model.element.TypeElement);
    descriptor: (Ljavax/lang/model/element/TypeElement;)Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=13, args_size=1
        start local 0 // javax.lang.model.element.TypeElement conversionClass
         0: .line 144
            getstatic com.oracle.graal.python.processor.ConverterFactory.cache:Ljava/util/Map;
            aload 0 /* conversionClass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.graal.python.processor.ConverterFactory
            astore 1 /* factory */
        start local 1 // com.oracle.graal.python.processor.ConverterFactory factory
         1: .line 145
            aload 1 /* factory */
            ifnull 3
         2: .line 146
            aload 1 /* factory */
            areturn
         3: .line 148
      StackMap locals: com.oracle.graal.python.processor.ConverterFactory
      StackMap stack:
            aload 0 /* conversionClass */
            invokeinterface javax.lang.model.element.TypeElement.getEnclosedElements:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 40
      StackMap locals: javax.lang.model.element.TypeElement com.oracle.graal.python.processor.ConverterFactory top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.Element
            astore 2 /* e */
        start local 2 // javax.lang.model.element.Element e
         5: .line 149
            aload 2 /* e */
            ldc Lcom/oracle/graal/python/annotations/ClinicConverterFactory;
            invokeinterface javax.lang.model.element.Element.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.graal.python.annotations.ClinicConverterFactory
            astore 4 /* annot */
        start local 4 // com.oracle.graal.python.annotations.ClinicConverterFactory annot
         6: .line 150
            aload 4 /* annot */
            ifnull 40
         7: .line 151
            aload 2 /* e */
            invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 8
            aload 2 /* e */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.METHOD:Ljavax/lang/model/element/ElementKind;
            if_acmpeq 9
         8: .line 152
      StackMap locals: javax.lang.model.element.TypeElement com.oracle.graal.python.processor.ConverterFactory javax.lang.model.element.Element java.util.Iterator com.oracle.graal.python.annotations.ClinicConverterFactory
      StackMap stack:
            new com.oracle.graal.python.processor.ProcessingError
            dup
            aload 0 /* conversionClass */
            ldc "ClinicConverterFactory annotation is applicable only to static methods."
            iconst_0
            anewarray java.lang.Object
            invokespecial com.oracle.graal.python.processor.ProcessingError.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         9: .line 154
      StackMap locals:
      StackMap stack:
            aload 1 /* factory */
            ifnull 11
        10: .line 155
            new com.oracle.graal.python.processor.ProcessingError
            dup
            aload 0 /* conversionClass */
            ldc "Multiple ClinicConverterFactory annotations in a single class."
            iconst_0
            anewarray java.lang.Object
            invokespecial com.oracle.graal.python.processor.ProcessingError.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        11: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* conversionClass */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 5 /* fullClassName */
        start local 5 // java.lang.String fullClassName
        12: .line 158
            aload 0 /* conversionClass */
            invokeinterface javax.lang.model.element.TypeElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 6 /* className */
        start local 6 // java.lang.String className
        13: .line 159
            aload 2 /* e */
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 7 /* methodName */
        start local 7 // java.lang.String methodName
        14: .line 160
            aload 2 /* e */
            checkcast javax.lang.model.element.ExecutableElement
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            astore 8 /* params */
        start local 8 // java.util.List params
        15: .line 161
            aload 8 /* params */
            invokeinterface java.util.List.size:()I
            anewarray com.oracle.graal.python.processor.ConverterFactory$Param
            astore 9 /* args */
        start local 9 // com.oracle.graal.python.processor.ConverterFactory$Param[] args
        16: .line 162
            iconst_0
            istore 10 /* extraParamCount */
        start local 10 // int extraParamCount
        17: .line 163
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        18: goto 38
        19: .line 164
      StackMap locals: javax.lang.model.element.TypeElement com.oracle.graal.python.processor.ConverterFactory javax.lang.model.element.Element java.util.Iterator com.oracle.graal.python.annotations.ClinicConverterFactory java.lang.String java.lang.String java.lang.String java.util.List com.oracle.graal.python.processor.ConverterFactory$Param[] int int
      StackMap stack:
            aload 8 /* params */
            iload 11 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 12 /* param */
        start local 12 // javax.lang.model.element.VariableElement param
        20: .line 165
            aload 12 /* param */
            ldc Lcom/oracle/graal/python/annotations/ClinicConverterFactory$ArgumentIndex;
            invokeinterface javax.lang.model.element.VariableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 23
        21: .line 166
            aload 9 /* args */
            iload 11 /* i */
            getstatic com.oracle.graal.python.processor.ConverterFactory$Param.ArgumentIndex:Lcom/oracle/graal/python/processor/ConverterFactory$Param;
            aastore
        22: .line 167
            goto 37
      StackMap locals: javax.lang.model.element.VariableElement
      StackMap stack:
        23: aload 12 /* param */
            ldc Lcom/oracle/graal/python/annotations/ClinicConverterFactory$ArgumentName;
            invokeinterface javax.lang.model.element.VariableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 26
        24: .line 168
            aload 9 /* args */
            iload 11 /* i */
            getstatic com.oracle.graal.python.processor.ConverterFactory$Param.ArgumentName:Lcom/oracle/graal/python/processor/ConverterFactory$Param;
            aastore
        25: .line 169
            goto 37
      StackMap locals:
      StackMap stack:
        26: aload 12 /* param */
            ldc Lcom/oracle/graal/python/annotations/ClinicConverterFactory$BuiltinName;
            invokeinterface javax.lang.model.element.VariableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 29
        27: .line 170
            aload 9 /* args */
            iload 11 /* i */
            getstatic com.oracle.graal.python.processor.ConverterFactory$Param.BuiltinName:Lcom/oracle/graal/python/processor/ConverterFactory$Param;
            aastore
        28: .line 171
            goto 37
      StackMap locals:
      StackMap stack:
        29: aload 12 /* param */
            ldc Lcom/oracle/graal/python/annotations/ClinicConverterFactory$DefaultValue;
            invokeinterface javax.lang.model.element.VariableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 32
        30: .line 172
            aload 9 /* args */
            iload 11 /* i */
            getstatic com.oracle.graal.python.processor.ConverterFactory$Param.DefaultValue:Lcom/oracle/graal/python/processor/ConverterFactory$Param;
            aastore
        31: .line 173
            goto 37
      StackMap locals:
      StackMap stack:
        32: aload 12 /* param */
            ldc Lcom/oracle/graal/python/annotations/ClinicConverterFactory$UseDefaultForNone;
            invokeinterface javax.lang.model.element.VariableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 35
        33: .line 174
            aload 9 /* args */
            iload 11 /* i */
            getstatic com.oracle.graal.python.processor.ConverterFactory$Param.UseDefaultForNone:Lcom/oracle/graal/python/processor/ConverterFactory$Param;
            aastore
        34: .line 175
            goto 37
        35: .line 176
      StackMap locals:
      StackMap stack:
            aload 9 /* args */
            iload 11 /* i */
            getstatic com.oracle.graal.python.processor.ConverterFactory$Param.Extra:Lcom/oracle/graal/python/processor/ConverterFactory$Param;
            aastore
        36: .line 177
            iinc 10 /* extraParamCount */ 1
        end local 12 // javax.lang.model.element.VariableElement param
        37: .line 163
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 11 /* i */
            aload 9 /* args */
            arraylength
            if_icmplt 19
        end local 11 // int i
        39: .line 180
            new com.oracle.graal.python.processor.ConverterFactory
            dup
            aload 5 /* fullClassName */
            aload 6 /* className */
            aload 7 /* methodName */
            iload 10 /* extraParamCount */
            aload 9 /* args */
            aload 4 /* annot */
            invokeinterface com.oracle.graal.python.annotations.ClinicConverterFactory.shortCircuitPrimitive:()[Lcom/oracle/graal/python/annotations/ArgumentClinic$PrimitiveType;
            invokespecial com.oracle.graal.python.processor.ConverterFactory.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I[Lcom/oracle/graal/python/processor/ConverterFactory$Param;[Lcom/oracle/graal/python/annotations/ArgumentClinic$PrimitiveType;)V
            astore 1 /* factory */
        end local 10 // int extraParamCount
        end local 9 // com.oracle.graal.python.processor.ConverterFactory$Param[] args
        end local 8 // java.util.List params
        end local 7 // java.lang.String methodName
        end local 6 // java.lang.String className
        end local 5 // java.lang.String fullClassName
        end local 4 // com.oracle.graal.python.annotations.ClinicConverterFactory annot
        end local 2 // javax.lang.model.element.Element e
        40: .line 148
      StackMap locals: javax.lang.model.element.TypeElement com.oracle.graal.python.processor.ConverterFactory top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        41: .line 183
            aload 1 /* factory */
            ifnonnull 43
        42: .line 184
            new com.oracle.graal.python.processor.ProcessingError
            dup
            aload 0 /* conversionClass */
            ldc "No ClinicConverterFactory annotation found."
            iconst_0
            anewarray java.lang.Object
            invokespecial com.oracle.graal.python.processor.ProcessingError.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        43: .line 186
      StackMap locals: javax.lang.model.element.TypeElement com.oracle.graal.python.processor.ConverterFactory
      StackMap stack:
            getstatic com.oracle.graal.python.processor.ConverterFactory.cache:Ljava/util/Map;
            aload 0 /* conversionClass */
            aload 1 /* factory */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        44: .line 187
            aload 1 /* factory */
            areturn
        end local 1 // com.oracle.graal.python.processor.ConverterFactory factory
        end local 0 // javax.lang.model.element.TypeElement conversionClass
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   45     0  conversionClass  Ljavax/lang/model/element/TypeElement;
            1   45     1          factory  Lcom/oracle/graal/python/processor/ConverterFactory;
            5   40     2                e  Ljavax/lang/model/element/Element;
            6   40     4            annot  Lcom/oracle/graal/python/annotations/ClinicConverterFactory;
           12   40     5    fullClassName  Ljava/lang/String;
           13   40     6        className  Ljava/lang/String;
           14   40     7       methodName  Ljava/lang/String;
           15   40     8           params  Ljava/util/List<+Ljavax/lang/model/element/VariableElement;>;
           16   40     9             args  [Lcom/oracle/graal/python/processor/ConverterFactory$Param;
           17   40    10  extraParamCount  I
           18   39    11                i  I
           20   37    12            param  Ljavax/lang/model/element/VariableElement;
    Exceptions:
      throws com.oracle.graal.python.processor.ProcessingError
    MethodParameters:
                 Name  Flags
      conversionClass  

  private static com.oracle.graal.python.processor.ConverterFactory forBuiltin(javax.lang.model.util.Elements, java.lang.String);
    descriptor: (Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // javax.lang.model.util.Elements elementUtils
        start local 1 // java.lang.String className
         0: .line 191
            aload 0 /* elementUtils */
            new java.lang.StringBuilder
            dup
            ldc "com.oracle.graal.python.nodes.function.builtins.clinic."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 2 /* type */
        start local 2 // javax.lang.model.element.TypeElement type
         1: .line 192
            aload 2 /* type */
            ifnonnull 3
         2: .line 193
            new com.oracle.graal.python.processor.ProcessingError
            dup
            aconst_null
            new java.lang.StringBuilder
            dup
            ldc "Unable to find built-in argument clinic conversion node com.oracle.graal.python.nodes.function.builtins.clinic."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokespecial com.oracle.graal.python.processor.ProcessingError.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         3: .line 195
      StackMap locals: javax.lang.model.element.TypeElement
      StackMap stack:
            aload 2 /* type */
            invokestatic com.oracle.graal.python.processor.ConverterFactory.getForClass:(Ljavax/lang/model/element/TypeElement;)Lcom/oracle/graal/python/processor/ConverterFactory;
            areturn
        end local 2 // javax.lang.model.element.TypeElement type
        end local 1 // java.lang.String className
        end local 0 // javax.lang.model.util.Elements elementUtils
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0  elementUtils  Ljavax/lang/model/util/Elements;
            0    4     1     className  Ljava/lang/String;
            1    4     2          type  Ljavax/lang/model/element/TypeElement;
    Exceptions:
      throws com.oracle.graal.python.processor.ProcessingError
    MethodParameters:
              Name  Flags
      elementUtils  
      className     

  public static void initBuiltins(javax.lang.model.util.Elements);
    descriptor: (Ljavax/lang/model/util/Elements;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.lang.model.util.Elements elementUtils
         0: .line 199
            aload 0 /* elementUtils */
            ldc "JavaBooleanConverterNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinBoolean:Lcom/oracle/graal/python/processor/ConverterFactory;
         1: .line 200
            aload 0 /* elementUtils */
            ldc "JavaStringConverterNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinString:Lcom/oracle/graal/python/processor/ConverterFactory;
         2: .line 201
            aload 0 /* elementUtils */
            ldc "JavaStringConverterWithDefaultValueNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinStringWithDefaultValue:Lcom/oracle/graal/python/processor/ConverterFactory;
         3: .line 202
            aload 0 /* elementUtils */
            ldc "JavaIntConversionNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinInt:Lcom/oracle/graal/python/processor/ConverterFactory;
         4: .line 203
            aload 0 /* elementUtils */
            ldc "JavaDoubleConversionNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinDouble:Lcom/oracle/graal/python/processor/ConverterFactory;
         5: .line 204
            aload 0 /* elementUtils */
            ldc "CodePointConversionNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinCodePoint:Lcom/oracle/graal/python/processor/ConverterFactory;
         6: .line 205
            aload 0 /* elementUtils */
            ldc "BufferConversionNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinBuffer:Lcom/oracle/graal/python/processor/ConverterFactory;
         7: .line 206
            aload 0 /* elementUtils */
            ldc "IndexConversionNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinIndex:Lcom/oracle/graal/python/processor/ConverterFactory;
         8: .line 207
            aload 0 /* elementUtils */
            ldc "SliceIndexConversionNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinSliceIndex:Lcom/oracle/graal/python/processor/ConverterFactory;
         9: .line 208
            aload 0 /* elementUtils */
            ldc "DefaultValueNode"
            invokestatic com.oracle.graal.python.processor.ConverterFactory.forBuiltin:(Ljavax/lang/model/util/Elements;Ljava/lang/String;)Lcom/oracle/graal/python/processor/ConverterFactory;
            putstatic com.oracle.graal.python.processor.ConverterFactory.BuiltinNone:Lcom/oracle/graal/python/processor/ConverterFactory;
        10: .line 209
            return
        end local 0 // javax.lang.model.util.Elements elementUtils
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0  elementUtils  Ljavax/lang/model/util/Elements;
    Exceptions:
      throws com.oracle.graal.python.processor.ProcessingError
    MethodParameters:
              Name  Flags
      elementUtils  

  static int[] $SWITCH_TABLE$com$oracle$graal$python$annotations$ArgumentClinic$ClinicConversion();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 58
            getstatic com.oracle.graal.python.processor.ConverterFactory.$SWITCH_TABLE$com$oracle$graal$python$annotations$ArgumentClinic$ClinicConversion:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.values:()[Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.Boolean:Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.Buffer:Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            bipush 8
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.CodePoint:Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            bipush 7
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.Double:Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            bipush 9
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.Index:Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.Int:Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            iconst_4
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.None:Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            iconst_1
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.SliceIndex:Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            bipush 6
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.String:Lcom/oracle/graal/python/annotations/ArgumentClinic$ClinicConversion;
            invokevirtual com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion.ordinal:()I
            iconst_3
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            dup
            putstatic com.oracle.graal.python.processor.ConverterFactory.$SWITCH_TABLE$com$oracle$graal$python$annotations$ArgumentClinic$ClinicConversion:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
}
SourceFile: "ConverterFactory.java"
NestMembers:
  com.oracle.graal.python.processor.ConverterFactory$Param
InnerClasses:
  public final ClinicConversion = com.oracle.graal.python.annotations.ArgumentClinic$ClinicConversion of com.oracle.graal.python.annotations.ArgumentClinic
  public final PrimitiveType = com.oracle.graal.python.annotations.ArgumentClinic$PrimitiveType of com.oracle.graal.python.annotations.ArgumentClinic
  public abstract ArgumentIndex = com.oracle.graal.python.annotations.ClinicConverterFactory$ArgumentIndex of com.oracle.graal.python.annotations.ClinicConverterFactory
  public abstract ArgumentName = com.oracle.graal.python.annotations.ClinicConverterFactory$ArgumentName of com.oracle.graal.python.annotations.ClinicConverterFactory
  public abstract BuiltinName = com.oracle.graal.python.annotations.ClinicConverterFactory$BuiltinName of com.oracle.graal.python.annotations.ClinicConverterFactory
  public abstract DefaultValue = com.oracle.graal.python.annotations.ClinicConverterFactory$DefaultValue of com.oracle.graal.python.annotations.ClinicConverterFactory
  public abstract UseDefaultForNone = com.oracle.graal.python.annotations.ClinicConverterFactory$UseDefaultForNone of com.oracle.graal.python.annotations.ClinicConverterFactory
  public final Param = com.oracle.graal.python.processor.ConverterFactory$Param of com.oracle.graal.python.processor.ConverterFactory