public class io.vertx.codegen.type.TypeMirrorFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.codegen.type.TypeMirrorFactory
  super_class: java.lang.Object
{
  private static final io.vertx.codegen.ModuleInfo VERTX_CORE_MOD;
    descriptor: Lio/vertx/codegen/ModuleInfo;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.vertx.codegen.type.ClassTypeInfo JSON_OBJECT;
    descriptor: Lio/vertx/codegen/type/ClassTypeInfo;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.vertx.codegen.type.ClassTypeInfo JSON_ARRAY;
    descriptor: Lio/vertx/codegen/type/ClassTypeInfo;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.vertx.codegen.type.ClassTypeInfo STRING;
    descriptor: Lio/vertx/codegen/type/ClassTypeInfo;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  final javax.lang.model.util.Elements elementUtils;
    descriptor: Ljavax/lang/model/util/Elements;
    flags: (0x0010) ACC_FINAL

  final javax.lang.model.util.Types typeUtils;
    descriptor: Ljavax/lang/model/util/Types;
    flags: (0x0010) ACC_FINAL

  final java.util.Map<java.lang.String, io.vertx.codegen.type.MapperInfo> serializers;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lio/vertx/codegen/type/MapperInfo;>;

  final java.util.Map<java.lang.String, io.vertx.codegen.type.MapperInfo> deserializers;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lio/vertx/codegen/type/MapperInfo;>;

  private static volatile int[] $SWITCH_TABLE$javax$lang$model$type$TypeKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: .line 26
            new io.vertx.codegen.ModuleInfo
            dup
            ldc "io.vertx.core"
            ldc "vertx"
            ldc "io.vertx"
            invokespecial io.vertx.codegen.ModuleInfo.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            putstatic io.vertx.codegen.type.TypeMirrorFactory.VERTX_CORE_MOD:Lio/vertx/codegen/ModuleInfo;
         1: .line 27
            new io.vertx.codegen.type.ClassTypeInfo
            dup
            getstatic io.vertx.codegen.type.ClassKind.JSON_OBJECT:Lio/vertx/codegen/type/ClassKind;
            ldc "io.vertx.core.json.JsonObject"
            getstatic io.vertx.codegen.type.TypeMirrorFactory.VERTX_CORE_MOD:Lio/vertx/codegen/ModuleInfo;
            iconst_0
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aconst_null
            invokespecial io.vertx.codegen.type.ClassTypeInfo.<init>:(Lio/vertx/codegen/type/ClassKind;Ljava/lang/String;Lio/vertx/codegen/ModuleInfo;ZLjava/util/List;Lio/vertx/codegen/type/DataObjectInfo;)V
            putstatic io.vertx.codegen.type.TypeMirrorFactory.JSON_OBJECT:Lio/vertx/codegen/type/ClassTypeInfo;
         2: .line 28
            new io.vertx.codegen.type.ClassTypeInfo
            dup
            getstatic io.vertx.codegen.type.ClassKind.JSON_ARRAY:Lio/vertx/codegen/type/ClassKind;
            ldc "io.vertx.core.json.JsonArray"
            getstatic io.vertx.codegen.type.TypeMirrorFactory.VERTX_CORE_MOD:Lio/vertx/codegen/ModuleInfo;
            iconst_0
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aconst_null
            invokespecial io.vertx.codegen.type.ClassTypeInfo.<init>:(Lio/vertx/codegen/type/ClassKind;Ljava/lang/String;Lio/vertx/codegen/ModuleInfo;ZLjava/util/List;Lio/vertx/codegen/type/DataObjectInfo;)V
            putstatic io.vertx.codegen.type.TypeMirrorFactory.JSON_ARRAY:Lio/vertx/codegen/type/ClassTypeInfo;
         3: .line 29
            new io.vertx.codegen.type.ClassTypeInfo
            dup
            getstatic io.vertx.codegen.type.ClassKind.STRING:Lio/vertx/codegen/type/ClassKind;
            ldc "java.lang.String"
            aconst_null
            iconst_0
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aconst_null
            invokespecial io.vertx.codegen.type.ClassTypeInfo.<init>:(Lio/vertx/codegen/type/ClassKind;Ljava/lang/String;Lio/vertx/codegen/ModuleInfo;ZLjava/util/List;Lio/vertx/codegen/type/DataObjectInfo;)V
            putstatic io.vertx.codegen.type.TypeMirrorFactory.STRING:Lio/vertx/codegen/type/ClassTypeInfo;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.lang.model.util.Elements, javax.lang.model.util.Types);
    descriptor: (Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // javax.lang.model.util.Elements elementUtils
        start local 2 // javax.lang.model.util.Types typeUtils
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 33
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.codegen.type.TypeMirrorFactory.serializers:Ljava/util/Map;
         2: .line 34
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.codegen.type.TypeMirrorFactory.deserializers:Ljava/util/Map;
         3: .line 37
            aload 0 /* this */
            aload 1 /* elementUtils */
            putfield io.vertx.codegen.type.TypeMirrorFactory.elementUtils:Ljavax/lang/model/util/Elements;
         4: .line 38
            aload 0 /* this */
            aload 2 /* typeUtils */
            putfield io.vertx.codegen.type.TypeMirrorFactory.typeUtils:Ljavax/lang/model/util/Types;
         5: .line 39
            return
        end local 2 // javax.lang.model.util.Types typeUtils
        end local 1 // javax.lang.model.util.Elements elementUtils
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0    6     1  elementUtils  Ljavax/lang/model/util/Elements;
            0    6     2     typeUtils  Ljavax/lang/model/util/Types;
    MethodParameters:
              Name  Flags
      elementUtils  
      typeUtils     

  public void addDataObjectDeserializer(javax.lang.model.element.Element, javax.lang.model.type.TypeMirror, io.vertx.codegen.type.MapperInfo);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;Lio/vertx/codegen/type/MapperInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // javax.lang.model.element.Element elt
        start local 2 // javax.lang.model.type.TypeMirror dataObjectType
        start local 3 // io.vertx.codegen.type.MapperInfo mapper
         0: .line 42
            aload 2 /* dataObjectType */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            astore 4 /* key */
        start local 4 // java.lang.String key
         1: .line 43
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.serializers:Ljava/util/Map;
            aload 4 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 3
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.serializers:Ljava/util/Map;
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.MapperInfo
            invokevirtual io.vertx.codegen.type.MapperInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            aload 3 /* mapper */
            invokevirtual io.vertx.codegen.type.MapperInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 44
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elt */
            ldc "Mapper cannot declare mixed JSON types"
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
         3: .line 46
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.deserializers:Ljava/util/Map;
            aload 4 /* key */
            aload 3 /* mapper */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 47
            return
        end local 4 // java.lang.String key
        end local 3 // io.vertx.codegen.type.MapperInfo mapper
        end local 2 // javax.lang.model.type.TypeMirror dataObjectType
        end local 1 // javax.lang.model.element.Element elt
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0    5     1             elt  Ljavax/lang/model/element/Element;
            0    5     2  dataObjectType  Ljavax/lang/model/type/TypeMirror;
            0    5     3          mapper  Lio/vertx/codegen/type/MapperInfo;
            1    5     4             key  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      elt             
      dataObjectType  
      mapper          

  public void addDataObjectSerializer(javax.lang.model.element.Element, javax.lang.model.type.TypeMirror, io.vertx.codegen.type.MapperInfo);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;Lio/vertx/codegen/type/MapperInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // javax.lang.model.element.Element elt
        start local 2 // javax.lang.model.type.TypeMirror dataObjectType
        start local 3 // io.vertx.codegen.type.MapperInfo mapper
         0: .line 50
            aload 2 /* dataObjectType */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            astore 4 /* key */
        start local 4 // java.lang.String key
         1: .line 51
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.deserializers:Ljava/util/Map;
            aload 4 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 3
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.deserializers:Ljava/util/Map;
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.MapperInfo
            invokevirtual io.vertx.codegen.type.MapperInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            aload 3 /* mapper */
            invokevirtual io.vertx.codegen.type.MapperInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 52
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elt */
            new java.lang.StringBuilder
            dup
            ldc "Mapper cannot declare mixed JSON types "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.deserializers:Ljava/util/Map;
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.MapperInfo
            invokevirtual io.vertx.codegen.type.MapperInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* mapper */
            invokevirtual io.vertx.codegen.type.MapperInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
         3: .line 54
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.serializers:Ljava/util/Map;
            aload 4 /* key */
            aload 3 /* mapper */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 55
            return
        end local 4 // java.lang.String key
        end local 3 // io.vertx.codegen.type.MapperInfo mapper
        end local 2 // javax.lang.model.type.TypeMirror dataObjectType
        end local 1 // javax.lang.model.element.Element elt
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0    5     1             elt  Ljavax/lang/model/element/Element;
            0    5     2  dataObjectType  Ljavax/lang/model/type/TypeMirror;
            0    5     3          mapper  Lio/vertx/codegen/type/MapperInfo;
            1    5     4             key  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      elt             
      dataObjectType  
      mapper          

  public io.vertx.codegen.type.TypeInfo create(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // javax.lang.model.type.TypeMirror type
         0: .line 58
            aload 0 /* this */
            aconst_null
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 1 // javax.lang.model.type.TypeMirror type
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0    1     1  type  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
      Name  Flags
      type  

  public io.vertx.codegen.type.TypeInfo create(io.vertx.codegen.type.TypeUse, javax.lang.model.type.TypeMirror);
    descriptor: (Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // io.vertx.codegen.type.TypeUse use
        start local 2 // javax.lang.model.type.TypeMirror type
         0: .line 62
            invokestatic io.vertx.codegen.type.TypeMirrorFactory.$SWITCH_TABLE$javax$lang$model$type$TypeKind:()[I
            aload 2 /* type */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iaload
            tableswitch { // 1 - 15
                    1: 3
                    2: 3
                    3: 3
                    4: 3
                    5: 3
                    6: 3
                    7: 3
                    8: 3
                    9: 1
                   10: 8
                   11: 8
                   12: 7
                   13: 2
                   14: 2
                   15: 6
              default: 8
          }
         1: .line 64
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.codegen.type.VoidTypeInfo.INSTANCE:Lio/vertx/codegen/type/TypeInfo;
            areturn
         2: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* use */
            aload 2 /* type */
            checkcast javax.lang.model.type.DeclaredType
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
            areturn
         3: .line 76
      StackMap locals:
      StackMap stack:
            aload 1 /* use */
            ifnull 5
            aload 1 /* use */
            invokevirtual io.vertx.codegen.type.TypeUse.isNullable:()Z
            ifeq 5
         4: .line 77
            new java.lang.IllegalArgumentException
            dup
            ldc "Primitive types cannot be annotated with @Nullable"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 79
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.codegen.type.PrimitiveTypeInfo.PRIMITIVES:Ljava/util/HashMap;
            aload 2 /* type */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.name:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            areturn
         6: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* use */
            aload 2 /* type */
            checkcast javax.lang.model.type.TypeVariable
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/TypeVariable;)Lio/vertx/codegen/type/TypeVariableInfo;
            areturn
         7: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* use */
            aload 2 /* type */
            checkcast javax.lang.model.type.ArrayType
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/ArrayType;)Lio/vertx/codegen/type/ArrayTypeInfo;
            areturn
         8: .line 85
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " of kind "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* type */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // javax.lang.model.type.TypeMirror type
        end local 1 // io.vertx.codegen.type.TypeUse use
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0    9     1   use  Lio/vertx/codegen/type/TypeUse;
            0    9     2  type  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
      Name  Flags
      use   
      type  

  public io.vertx.codegen.type.TypeInfo create(javax.lang.model.type.DeclaredType);
    descriptor: (Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // javax.lang.model.type.DeclaredType type
         0: .line 90
            aload 0 /* this */
            aconst_null
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 1 // javax.lang.model.type.DeclaredType type
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0    1     1  type  Ljavax/lang/model/type/DeclaredType;
    MethodParameters:
      Name  Flags
      type  

  public io.vertx.codegen.type.TypeInfo create(io.vertx.codegen.type.TypeUse, javax.lang.model.type.DeclaredType);
    descriptor: (Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // io.vertx.codegen.type.TypeUse use
        start local 2 // javax.lang.model.type.DeclaredType type
         0: .line 94
            aload 0 /* this */
            aload 1 /* use */
            aload 2 /* type */
            iconst_1
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/DeclaredType;Z)Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 2 // javax.lang.model.type.DeclaredType type
        end local 1 // io.vertx.codegen.type.TypeUse use
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0    1     1   use  Lio/vertx/codegen/type/TypeUse;
            0    1     2  type  Ljavax/lang/model/type/DeclaredType;
    MethodParameters:
      Name  Flags
      use   
      type  

  public io.vertx.codegen.type.TypeInfo create(io.vertx.codegen.type.TypeUse, javax.lang.model.type.DeclaredType, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/DeclaredType;Z)Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=25, args_size=4
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // io.vertx.codegen.type.TypeUse use
        start local 2 // javax.lang.model.type.DeclaredType type
        start local 3 // boolean checkTypeArgs
         0: .line 98
            aload 1 /* use */
            ifnull 1
            aload 1 /* use */
            invokevirtual io.vertx.codegen.type.TypeUse.isNullable:()Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* nullable */
        start local 4 // boolean nullable
         3: .line 99
            aload 2 /* type */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 5 /* elt */
        start local 5 // javax.lang.model.element.TypeElement elt
         4: .line 100
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.elementUtils:Ljavax/lang/model/util/Elements;
            aload 5 /* elt */
            invokeinterface javax.lang.model.util.Elements.getPackageOf:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/PackageElement;
            astore 6 /* pkgElt */
        start local 6 // javax.lang.model.element.PackageElement pkgElt
         5: .line 101
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.elementUtils:Ljavax/lang/model/util/Elements;
            aload 6 /* pkgElt */
            invokestatic io.vertx.codegen.ModuleInfo.resolve:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/element/PackageElement;)Lio/vertx/codegen/ModuleInfo;
            astore 7 /* module */
        start local 7 // io.vertx.codegen.ModuleInfo module
         6: .line 102
            aload 5 /* elt */
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 8 /* fqcn */
        start local 8 // java.lang.String fqcn
         7: .line 103
            aload 5 /* elt */
            invokeinterface javax.lang.model.element.TypeElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            pop
         8: .line 104
            aload 5 /* elt */
            ldc Lio/vertx/codegen/annotations/ProxyGen;
            invokeinterface javax.lang.model.element.TypeElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 9
            iconst_1
            goto 10
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.DeclaredType int int javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement io.vertx.codegen.ModuleInfo java.lang.String
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 9 /* proxyGen */
        start local 9 // boolean proxyGen
        11: .line 105
            aload 5 /* elt */
            invokeinterface javax.lang.model.element.TypeElement.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.ENUM:Ljavax/lang/model/element/ElementKind;
            if_acmpne 22
        12: .line 106
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* values */
        start local 10 // java.util.ArrayList values
        13: .line 107
            aload 5 /* elt */
            invokeinterface javax.lang.model.element.TypeElement.getEnclosedElements:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 17
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.DeclaredType int int javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement io.vertx.codegen.ModuleInfo java.lang.String int java.util.ArrayList top java.util.Iterator
      StackMap stack:
        14: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.Element
            astore 11 /* enclosedElt */
        start local 11 // javax.lang.model.element.Element enclosedElt
        15: .line 108
            aload 11 /* enclosedElt */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.ENUM_CONSTANT:Ljavax/lang/model/element/ElementKind;
            if_acmpne 17
        16: .line 109
            aload 10 /* values */
            aload 11 /* enclosedElt */
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // javax.lang.model.element.Element enclosedElt
        17: .line 107
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        18: .line 112
            aload 5 /* elt */
            ldc Lio/vertx/codegen/annotations/VertxGen;
            invokeinterface javax.lang.model.element.TypeElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 19
            iconst_1
            goto 20
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.DeclaredType int int javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement io.vertx.codegen.ModuleInfo java.lang.String int java.util.ArrayList
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: istore 11 /* gen */
        start local 11 // boolean gen
        21: .line 113
            new io.vertx.codegen.type.EnumTypeInfo
            dup
            aload 8 /* fqcn */
            iload 11 /* gen */
            aload 10 /* values */
            aload 7 /* module */
            iload 4 /* nullable */
            invokespecial io.vertx.codegen.type.EnumTypeInfo.<init>:(Ljava/lang/String;ZLjava/util/List;Lio/vertx/codegen/ModuleInfo;Z)V
            areturn
        end local 11 // boolean gen
        end local 10 // java.util.ArrayList values
        22: .line 115
      StackMap locals:
      StackMap stack:
            aload 8 /* fqcn */
            aload 5 /* elt */
            ldc Lio/vertx/codegen/annotations/VertxGen;
            invokeinterface javax.lang.model.element.TypeElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 23
            iconst_1
            goto 24
      StackMap locals:
      StackMap stack: java.lang.String
        23: iconst_0
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.DeclaredType int int javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement io.vertx.codegen.ModuleInfo java.lang.String int
      StackMap stack: java.lang.String int
        24: invokestatic io.vertx.codegen.type.ClassKind.getKind:(Ljava/lang/String;Z)Lio/vertx/codegen/type/ClassKind;
            astore 10 /* kind */
        start local 10 // io.vertx.codegen.type.ClassKind kind
        25: .line 116
            aload 2 /* type */
            invokeinterface javax.lang.model.type.DeclaredType.getTypeArguments:()Ljava/util/List;
            astore 11 /* typeArgs */
        start local 11 // java.util.List typeArgs
        26: .line 117
            iload 3 /* checkTypeArgs */
            ifeq 39
            aload 11 /* typeArgs */
            invokeinterface java.util.List.size:()I
            ifle 39
        27: .line 119
            new java.util.ArrayList
            dup
            aload 11 /* typeArgs */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 12 /* typeArguments */
        start local 12 // java.util.List typeArguments
        28: .line 120
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        29: goto 36
        30: .line 121
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.DeclaredType int int javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement io.vertx.codegen.ModuleInfo java.lang.String int io.vertx.codegen.type.ClassKind java.util.List java.util.List int
      StackMap stack:
            aload 1 /* use */
            ifnull 31
            aload 1 /* use */
            aload 8 /* fqcn */
            iload 13 /* i */
            invokevirtual io.vertx.codegen.type.TypeUse.getArg:(Ljava/lang/String;I)Lio/vertx/codegen/type/TypeUse;
            goto 32
      StackMap locals:
      StackMap stack:
        31: aconst_null
      StackMap locals:
      StackMap stack: io.vertx.codegen.type.TypeUse
        32: astore 14 /* argUse */
        start local 14 // io.vertx.codegen.type.TypeUse argUse
        33: .line 122
            aload 0 /* this */
            aload 14 /* argUse */
            aload 11 /* typeArgs */
            iload 13 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            astore 15 /* typeArgDesc */
        start local 15 // io.vertx.codegen.type.TypeInfo typeArgDesc
        34: .line 124
            aload 12 /* typeArguments */
            aload 15 /* typeArgDesc */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // io.vertx.codegen.type.TypeInfo typeArgDesc
        end local 14 // io.vertx.codegen.type.TypeUse argUse
        35: .line 120
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 13 /* i */
            aload 11 /* typeArgs */
            invokeinterface java.util.List.size:()I
            if_icmplt 30
        end local 13 // int i
        37: .line 126
            aload 0 /* this */
            aconst_null
            aload 2 /* type */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.DeclaredType
            iconst_0
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/DeclaredType;Z)Lio/vertx/codegen/type/TypeInfo;
            checkcast io.vertx.codegen.type.ClassTypeInfo
            astore 13 /* raw */
        start local 13 // io.vertx.codegen.type.ClassTypeInfo raw
        38: .line 127
            new io.vertx.codegen.type.ParameterizedTypeInfo
            dup
            aload 13 /* raw */
            iload 4 /* nullable */
            aload 12 /* typeArguments */
            invokespecial io.vertx.codegen.type.ParameterizedTypeInfo.<init>:(Lio/vertx/codegen/type/ClassTypeInfo;ZLjava/util/List;)V
            areturn
        end local 13 // io.vertx.codegen.type.ClassTypeInfo raw
        end local 12 // java.util.List typeArguments
        39: .line 130
      StackMap locals:
      StackMap stack:
            aload 10 /* kind */
            getstatic io.vertx.codegen.type.ClassKind.BOXED_PRIMITIVE:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 44
        40: .line 131
            getstatic io.vertx.codegen.type.ClassTypeInfo.PRIMITIVES:Ljava/util/HashMap;
            aload 8 /* fqcn */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.ClassTypeInfo
            astore 12 /* raw */
        start local 12 // io.vertx.codegen.type.ClassTypeInfo raw
        41: .line 132
            iload 4 /* nullable */
            ifeq 91
        42: .line 133
            new io.vertx.codegen.type.ClassTypeInfo
            dup
            aload 12 /* raw */
            getfield io.vertx.codegen.type.ClassTypeInfo.kind:Lio/vertx/codegen/type/ClassKind;
            aload 12 /* raw */
            getfield io.vertx.codegen.type.ClassTypeInfo.name:Ljava/lang/String;
            aload 12 /* raw */
            getfield io.vertx.codegen.type.ClassTypeInfo.module:Lio/vertx/codegen/ModuleInfo;
            iconst_1
            aload 12 /* raw */
            getfield io.vertx.codegen.type.ClassTypeInfo.params:Ljava/util/List;
            aconst_null
            invokespecial io.vertx.codegen.type.ClassTypeInfo.<init>:(Lio/vertx/codegen/type/ClassKind;Ljava/lang/String;Lio/vertx/codegen/ModuleInfo;ZLjava/util/List;Lio/vertx/codegen/type/DataObjectInfo;)V
            astore 12 /* raw */
        43: .line 135
            goto 91
        end local 12 // io.vertx.codegen.type.ClassTypeInfo raw
        44: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.serializers:Ljava/util/Map;
            aload 8 /* fqcn */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.MapperInfo
            astore 13 /* serializer */
        start local 13 // io.vertx.codegen.type.MapperInfo serializer
        45: .line 137
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.deserializers:Ljava/util/Map;
            aload 8 /* fqcn */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.MapperInfo
            astore 14 /* deserializer */
        start local 14 // io.vertx.codegen.type.MapperInfo deserializer
        46: .line 138
            aconst_null
            astore 15 /* dataObject */
        start local 15 // io.vertx.codegen.type.DataObjectInfo dataObject
        47: .line 139
            aload 5 /* elt */
            ldc Lio/vertx/codegen/annotations/DataObject;
            invokeinterface javax.lang.model.element.TypeElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 70
        48: .line 140
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.elementUtils:Ljavax/lang/model/util/Elements;
            aload 5 /* elt */
            invokestatic io.vertx.codegen.Helper.getAnnotatedDataObjectAnnotatedSerializationType:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/element/TypeElement;)Lio/vertx/codegen/type/ClassKind;
            astore 16 /* serializable */
        start local 16 // io.vertx.codegen.type.ClassKind serializable
        49: .line 141
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.elementUtils:Ljavax/lang/model/util/Elements;
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.typeUtils:Ljavax/lang/model/util/Types;
            aload 5 /* elt */
            invokestatic io.vertx.codegen.Helper.getAnnotatedDataObjectDeserialisationType:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;)Lio/vertx/codegen/type/ClassKind;
            astore 17 /* deserializable */
        start local 17 // io.vertx.codegen.type.ClassKind deserializable
        50: .line 142
            aload 13 /* serializer */
            ifnonnull 60
            aload 16 /* serializable */
            ifnull 60
        51: .line 143
            new io.vertx.codegen.type.MapperInfo
            dup
            invokespecial io.vertx.codegen.type.MapperInfo.<init>:()V
            astore 13 /* serializer */
        52: .line 144
            aload 13 /* serializer */
            aload 8 /* fqcn */
            invokevirtual io.vertx.codegen.type.MapperInfo.setQualifiedName:(Ljava/lang/String;)V
        53: .line 145
            aload 13 /* serializer */
            getstatic io.vertx.codegen.MapperKind.SELF:Lio/vertx/codegen/MapperKind;
            invokevirtual io.vertx.codegen.type.MapperInfo.setKind:(Lio/vertx/codegen/MapperKind;)V
        54: .line 146
            aload 16 /* serializable */
            getstatic io.vertx.codegen.type.ClassKind.JSON_OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 58
        55: .line 147
            aload 13 /* serializer */
            getstatic io.vertx.codegen.type.TypeMirrorFactory.JSON_OBJECT:Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.MapperInfo.setTargetType:(Lio/vertx/codegen/type/TypeInfo;)V
        56: .line 148
            aload 13 /* serializer */
            ldc "toJson"
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokevirtual io.vertx.codegen.type.MapperInfo.setSelectors:(Ljava/util/List;)V
        57: .line 149
            goto 60
        58: .line 150
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.DeclaredType int int javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement io.vertx.codegen.ModuleInfo java.lang.String int io.vertx.codegen.type.ClassKind java.util.List top io.vertx.codegen.type.MapperInfo io.vertx.codegen.type.MapperInfo io.vertx.codegen.type.DataObjectInfo io.vertx.codegen.type.ClassKind io.vertx.codegen.type.ClassKind
      StackMap stack:
            aload 13 /* serializer */
            getstatic io.vertx.codegen.type.TypeMirrorFactory.STRING:Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.MapperInfo.setTargetType:(Lio/vertx/codegen/type/TypeInfo;)V
        59: .line 151
            aload 13 /* serializer */
            ldc "toJson"
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokevirtual io.vertx.codegen.type.MapperInfo.setSelectors:(Ljava/util/List;)V
        60: .line 154
      StackMap locals:
      StackMap stack:
            aload 14 /* deserializer */
            ifnonnull 68
            aload 17 /* deserializable */
            ifnull 68
        61: .line 155
            new io.vertx.codegen.type.MapperInfo
            dup
            invokespecial io.vertx.codegen.type.MapperInfo.<init>:()V
            astore 14 /* deserializer */
        62: .line 156
            aload 14 /* deserializer */
            aload 8 /* fqcn */
            invokevirtual io.vertx.codegen.type.MapperInfo.setQualifiedName:(Ljava/lang/String;)V
        63: .line 157
            aload 14 /* deserializer */
            getstatic io.vertx.codegen.MapperKind.SELF:Lio/vertx/codegen/MapperKind;
            invokevirtual io.vertx.codegen.type.MapperInfo.setKind:(Lio/vertx/codegen/MapperKind;)V
        64: .line 158
            aload 17 /* deserializable */
            getstatic io.vertx.codegen.type.ClassKind.JSON_OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 67
        65: .line 159
            aload 14 /* deserializer */
            getstatic io.vertx.codegen.type.TypeMirrorFactory.JSON_OBJECT:Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.MapperInfo.setTargetType:(Lio/vertx/codegen/type/TypeInfo;)V
        66: .line 160
            goto 68
        67: .line 161
      StackMap locals:
      StackMap stack:
            aload 14 /* deserializer */
            getstatic io.vertx.codegen.type.TypeMirrorFactory.STRING:Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.MapperInfo.setTargetType:(Lio/vertx/codegen/type/TypeInfo;)V
        68: .line 164
      StackMap locals:
      StackMap stack:
            new io.vertx.codegen.type.DataObjectInfo
            dup
            iconst_1
            aload 13 /* serializer */
            aload 14 /* deserializer */
            invokespecial io.vertx.codegen.type.DataObjectInfo.<init>:(ZLio/vertx/codegen/type/MapperInfo;Lio/vertx/codegen/type/MapperInfo;)V
            astore 15 /* dataObject */
        end local 17 // io.vertx.codegen.type.ClassKind deserializable
        end local 16 // io.vertx.codegen.type.ClassKind serializable
        69: .line 165
            goto 72
      StackMap locals:
      StackMap stack:
        70: aload 13 /* serializer */
            ifnonnull 71
            aload 14 /* deserializer */
            ifnull 72
        71: .line 166
      StackMap locals:
      StackMap stack:
            new io.vertx.codegen.type.DataObjectInfo
            dup
            iconst_0
            aload 13 /* serializer */
            aload 14 /* deserializer */
            invokespecial io.vertx.codegen.type.DataObjectInfo.<init>:(ZLio/vertx/codegen/type/MapperInfo;Lio/vertx/codegen/type/MapperInfo;)V
            astore 15 /* dataObject */
        72: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* type */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.createTypeParams:(Ljavax/lang/model/type/DeclaredType;)Ljava/util/List;
            astore 16 /* typeParams */
        start local 16 // java.util.List typeParams
        73: .line 170
            aload 10 /* kind */
            getstatic io.vertx.codegen.type.ClassKind.API:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 90
        74: .line 171
            aload 5 /* elt */
            ldc Lio/vertx/codegen/annotations/VertxGen;
            invokeinterface javax.lang.model.element.TypeElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast io.vertx.codegen.annotations.VertxGen
            astore 17 /* genAnn */
        start local 17 // io.vertx.codegen.annotations.VertxGen genAnn
        75: .line 172
            aconst_null
            astore 18 /* handlerArg */
        start local 18 // io.vertx.codegen.type.TypeInfo handlerArg
        76: .line 173
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.elementUtils:Ljavax/lang/model/util/Elements;
            ldc "io.vertx.core.Handler"
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 19 /* parameterizedElt */
        start local 19 // javax.lang.model.element.TypeElement parameterizedElt
        77: .line 174
            aload 19 /* parameterizedElt */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 20 /* parameterizedType */
        start local 20 // javax.lang.model.type.TypeMirror parameterizedType
        78: .line 175
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.typeUtils:Ljavax/lang/model/util/Types;
            aload 20 /* parameterizedType */
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            astore 21 /* rawType */
        start local 21 // javax.lang.model.type.TypeMirror rawType
        79: .line 176
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.typeUtils:Ljavax/lang/model/util/Types;
            aload 2 /* type */
            aload 21 /* rawType */
            invokeinterface javax.lang.model.util.Types.isSubtype:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 88
        80: .line 177
            aload 0 /* this */
            getfield io.vertx.codegen.type.TypeMirrorFactory.typeUtils:Ljavax/lang/model/util/Types;
            aload 2 /* type */
            aload 19 /* parameterizedElt */
            invokeinterface javax.lang.model.element.TypeElement.getTypeParameters:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.TypeParameterElement
            invokestatic io.vertx.codegen.Helper.resolveTypeParameter:(Ljavax/lang/model/util/Types;Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/element/TypeParameterElement;)Ljavax/lang/model/type/TypeMirror;
            astore 22 /* resolved */
        start local 22 // javax.lang.model.type.TypeMirror resolved
        81: .line 178
            aload 22 /* resolved */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.DECLARED:Ljavax/lang/model/type/TypeKind;
            if_acmpne 87
        82: .line 179
            aload 22 /* resolved */
            checkcast javax.lang.model.type.DeclaredType
            astore 23 /* dt */
        start local 23 // javax.lang.model.type.DeclaredType dt
        83: .line 180
            aload 23 /* dt */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 24 /* a */
        start local 24 // javax.lang.model.element.TypeElement a
        84: .line 181
            aload 24 /* a */
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            ldc "io.vertx.core.AsyncResult"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 88
        85: .line 182
            aload 0 /* this */
            aload 22 /* resolved */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            astore 18 /* handlerArg */
        end local 24 // javax.lang.model.element.TypeElement a
        end local 23 // javax.lang.model.type.DeclaredType dt
        86: .line 184
            goto 88
        87: .line 185
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.DeclaredType int int javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement io.vertx.codegen.ModuleInfo java.lang.String int io.vertx.codegen.type.ClassKind java.util.List top io.vertx.codegen.type.MapperInfo io.vertx.codegen.type.MapperInfo io.vertx.codegen.type.DataObjectInfo java.util.List io.vertx.codegen.annotations.VertxGen io.vertx.codegen.type.TypeInfo javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 0 /* this */
            aload 22 /* resolved */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            astore 18 /* handlerArg */
        end local 22 // javax.lang.model.type.TypeMirror resolved
        88: .line 188
      StackMap locals:
      StackMap stack:
            new io.vertx.codegen.type.ApiTypeInfo
            dup
            aload 8 /* fqcn */
            aload 17 /* genAnn */
            invokeinterface io.vertx.codegen.annotations.VertxGen.concrete:()Z
            aload 16 /* typeParams */
            aload 18 /* handlerArg */
            aload 7 /* module */
            iload 4 /* nullable */
            iload 9 /* proxyGen */
            aload 15 /* dataObject */
            invokespecial io.vertx.codegen.type.ApiTypeInfo.<init>:(Ljava/lang/String;ZLjava/util/List;Lio/vertx/codegen/type/TypeInfo;Lio/vertx/codegen/ModuleInfo;ZZLio/vertx/codegen/type/DataObjectInfo;)V
            astore 12 /* raw */
        end local 21 // javax.lang.model.type.TypeMirror rawType
        end local 20 // javax.lang.model.type.TypeMirror parameterizedType
        end local 19 // javax.lang.model.element.TypeElement parameterizedElt
        end local 18 // io.vertx.codegen.type.TypeInfo handlerArg
        end local 17 // io.vertx.codegen.annotations.VertxGen genAnn
        start local 12 // io.vertx.codegen.type.ClassTypeInfo raw
        89: .line 189
            goto 91
        end local 12 // io.vertx.codegen.type.ClassTypeInfo raw
        90: .line 190
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.DeclaredType int int javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement io.vertx.codegen.ModuleInfo java.lang.String int io.vertx.codegen.type.ClassKind java.util.List top io.vertx.codegen.type.MapperInfo io.vertx.codegen.type.MapperInfo io.vertx.codegen.type.DataObjectInfo java.util.List
      StackMap stack:
            new io.vertx.codegen.type.ClassTypeInfo
            dup
            aload 10 /* kind */
            aload 8 /* fqcn */
            aload 7 /* module */
            iload 4 /* nullable */
            aload 16 /* typeParams */
            aload 15 /* dataObject */
            invokespecial io.vertx.codegen.type.ClassTypeInfo.<init>:(Lio/vertx/codegen/type/ClassKind;Ljava/lang/String;Lio/vertx/codegen/ModuleInfo;ZLjava/util/List;Lio/vertx/codegen/type/DataObjectInfo;)V
            astore 12 /* raw */
        end local 16 // java.util.List typeParams
        end local 15 // io.vertx.codegen.type.DataObjectInfo dataObject
        end local 14 // io.vertx.codegen.type.MapperInfo deserializer
        end local 13 // io.vertx.codegen.type.MapperInfo serializer
        start local 12 // io.vertx.codegen.type.ClassTypeInfo raw
        91: .line 193
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.DeclaredType int int javax.lang.model.element.TypeElement javax.lang.model.element.PackageElement io.vertx.codegen.ModuleInfo java.lang.String int io.vertx.codegen.type.ClassKind java.util.List io.vertx.codegen.type.ClassTypeInfo
      StackMap stack:
            aload 12 /* raw */
            areturn
        end local 12 // io.vertx.codegen.type.ClassTypeInfo raw
        end local 11 // java.util.List typeArgs
        end local 10 // io.vertx.codegen.type.ClassKind kind
        end local 9 // boolean proxyGen
        end local 8 // java.lang.String fqcn
        end local 7 // io.vertx.codegen.ModuleInfo module
        end local 6 // javax.lang.model.element.PackageElement pkgElt
        end local 5 // javax.lang.model.element.TypeElement elt
        end local 4 // boolean nullable
        end local 3 // boolean checkTypeArgs
        end local 2 // javax.lang.model.type.DeclaredType type
        end local 1 // io.vertx.codegen.type.TypeUse use
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   92     0               this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0   92     1                use  Lio/vertx/codegen/type/TypeUse;
            0   92     2               type  Ljavax/lang/model/type/DeclaredType;
            0   92     3      checkTypeArgs  Z
            3   92     4           nullable  Z
            4   92     5                elt  Ljavax/lang/model/element/TypeElement;
            5   92     6             pkgElt  Ljavax/lang/model/element/PackageElement;
            6   92     7             module  Lio/vertx/codegen/ModuleInfo;
            7   92     8               fqcn  Ljava/lang/String;
           11   92     9           proxyGen  Z
           13   22    10             values  Ljava/util/ArrayList<Ljava/lang/String;>;
           15   17    11        enclosedElt  Ljavax/lang/model/element/Element;
           21   22    11                gen  Z
           25   92    10               kind  Lio/vertx/codegen/type/ClassKind;
           26   92    11           typeArgs  Ljava/util/List<+Ljavax/lang/model/type/TypeMirror;>;
           28   39    12      typeArguments  Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;
           29   37    13                  i  I
           33   35    14             argUse  Lio/vertx/codegen/type/TypeUse;
           34   35    15        typeArgDesc  Lio/vertx/codegen/type/TypeInfo;
           38   39    13                raw  Lio/vertx/codegen/type/ClassTypeInfo;
           41   44    12                raw  Lio/vertx/codegen/type/ClassTypeInfo;
           89   90    12                raw  Lio/vertx/codegen/type/ClassTypeInfo;
           91   92    12                raw  Lio/vertx/codegen/type/ClassTypeInfo;
           45   91    13         serializer  Lio/vertx/codegen/type/MapperInfo;
           46   91    14       deserializer  Lio/vertx/codegen/type/MapperInfo;
           47   91    15         dataObject  Lio/vertx/codegen/type/DataObjectInfo;
           49   69    16       serializable  Lio/vertx/codegen/type/ClassKind;
           50   69    17     deserializable  Lio/vertx/codegen/type/ClassKind;
           73   91    16         typeParams  Ljava/util/List<Lio/vertx/codegen/TypeParamInfo$Class;>;
           75   89    17             genAnn  Lio/vertx/codegen/annotations/VertxGen;
           76   89    18         handlerArg  Lio/vertx/codegen/type/TypeInfo;
           77   89    19   parameterizedElt  Ljavax/lang/model/element/TypeElement;
           78   89    20  parameterizedType  Ljavax/lang/model/type/TypeMirror;
           79   89    21            rawType  Ljavax/lang/model/type/TypeMirror;
           81   88    22           resolved  Ljavax/lang/model/type/TypeMirror;
           83   86    23                 dt  Ljavax/lang/model/type/DeclaredType;
           84   86    24                  a  Ljavax/lang/model/element/TypeElement;
    MethodParameters:
               Name  Flags
      use            
      type           
      checkTypeArgs  

  public io.vertx.codegen.type.TypeVariableInfo create(io.vertx.codegen.type.TypeUse, javax.lang.model.type.TypeVariable);
    descriptor: (Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/TypeVariable;)Lio/vertx/codegen/type/TypeVariableInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // io.vertx.codegen.type.TypeUse use
        start local 2 // javax.lang.model.type.TypeVariable type
         0: .line 199
            aload 2 /* type */
            invokeinterface javax.lang.model.type.TypeVariable.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeParameterElement
            astore 3 /* elt */
        start local 3 // javax.lang.model.element.TypeParameterElement elt
         1: .line 200
            aload 3 /* elt */
            invokestatic io.vertx.codegen.TypeParamInfo.create:(Ljavax/lang/model/element/TypeParameterElement;)Lio/vertx/codegen/TypeParamInfo;
            astore 4 /* param */
        start local 4 // io.vertx.codegen.TypeParamInfo param
         2: .line 201
            new io.vertx.codegen.type.TypeVariableInfo
            dup
            aload 4 /* param */
            aload 1 /* use */
            ifnull 3
            aload 1 /* use */
            invokevirtual io.vertx.codegen.type.TypeUse.isNullable:()Z
            ifeq 3
            iconst_1
            goto 4
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.TypeVariable javax.lang.model.element.TypeParameterElement io.vertx.codegen.TypeParamInfo
      StackMap stack: new 2 new 2 io.vertx.codegen.TypeParamInfo
         3: iconst_0
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.TypeVariable javax.lang.model.element.TypeParameterElement io.vertx.codegen.TypeParamInfo
      StackMap stack: new 2 new 2 io.vertx.codegen.TypeParamInfo int
         4: aload 3 /* elt */
            invokeinterface javax.lang.model.element.TypeParameterElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokespecial io.vertx.codegen.type.TypeVariableInfo.<init>:(Lio/vertx/codegen/TypeParamInfo;ZLjava/lang/String;)V
            areturn
        end local 4 // io.vertx.codegen.TypeParamInfo param
        end local 3 // javax.lang.model.element.TypeParameterElement elt
        end local 2 // javax.lang.model.type.TypeVariable type
        end local 1 // io.vertx.codegen.type.TypeUse use
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0    5     1    use  Lio/vertx/codegen/type/TypeUse;
            0    5     2   type  Ljavax/lang/model/type/TypeVariable;
            1    5     3    elt  Ljavax/lang/model/element/TypeParameterElement;
            2    5     4  param  Lio/vertx/codegen/TypeParamInfo;
    MethodParameters:
      Name  Flags
      use   
      type  

  public io.vertx.codegen.type.ArrayTypeInfo create(io.vertx.codegen.type.TypeUse, javax.lang.model.type.ArrayType);
    descriptor: (Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/ArrayType;)Lio/vertx/codegen/type/ArrayTypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // io.vertx.codegen.type.TypeUse use
        start local 2 // javax.lang.model.type.ArrayType type
         0: .line 205
            aload 2 /* type */
            invokeinterface javax.lang.model.type.ArrayType.getComponentType:()Ljavax/lang/model/type/TypeMirror;
            astore 3 /* componentType */
        start local 3 // javax.lang.model.type.TypeMirror componentType
         1: .line 206
            new io.vertx.codegen.type.ArrayTypeInfo
            dup
            aload 0 /* this */
            aload 3 /* componentType */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            aload 1 /* use */
            ifnull 2
            aload 1 /* use */
            invokevirtual io.vertx.codegen.type.TypeUse.isNullable:()Z
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.ArrayType javax.lang.model.type.TypeMirror
      StackMap stack: new 1 new 1 io.vertx.codegen.type.TypeInfo
         2: iconst_0
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory io.vertx.codegen.type.TypeUse javax.lang.model.type.ArrayType javax.lang.model.type.TypeMirror
      StackMap stack: new 1 new 1 io.vertx.codegen.type.TypeInfo int
         3: invokespecial io.vertx.codegen.type.ArrayTypeInfo.<init>:(Lio/vertx/codegen/type/TypeInfo;Z)V
            areturn
        end local 3 // javax.lang.model.type.TypeMirror componentType
        end local 2 // javax.lang.model.type.ArrayType type
        end local 1 // io.vertx.codegen.type.TypeUse use
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0    4     1            use  Lio/vertx/codegen/type/TypeUse;
            0    4     2           type  Ljavax/lang/model/type/ArrayType;
            1    4     3  componentType  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
      Name  Flags
      use   
      type  

  private java.util.List<io.vertx.codegen.TypeParamInfo$Class> createTypeParams(javax.lang.model.type.DeclaredType);
    descriptor: (Ljavax/lang/model/type/DeclaredType;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // io.vertx.codegen.type.TypeMirrorFactory this
        start local 1 // javax.lang.model.type.DeclaredType type
         0: .line 210
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* typeParams */
        start local 2 // java.util.List typeParams
         1: .line 211
            aload 1 /* type */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 3 /* elt */
        start local 3 // javax.lang.model.element.TypeElement elt
         2: .line 212
            aload 3 /* elt */
            invokeinterface javax.lang.model.element.TypeElement.getTypeParameters:()Ljava/util/List;
            astore 4 /* typeParamElts */
        start local 4 // java.util.List typeParamElts
         3: .line 213
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         4: goto 8
         5: .line 214
      StackMap locals: io.vertx.codegen.type.TypeMirrorFactory javax.lang.model.type.DeclaredType java.util.List javax.lang.model.element.TypeElement java.util.List int
      StackMap stack:
            aload 4 /* typeParamElts */
            iload 5 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.TypeParameterElement
            astore 6 /* typeParamElt */
        start local 6 // javax.lang.model.element.TypeParameterElement typeParamElt
         6: .line 215
            aload 2 /* typeParams */
            new io.vertx.codegen.TypeParamInfo$Class
            dup
            aload 3 /* elt */
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            iload 5 /* index */
            aload 6 /* typeParamElt */
            invokeinterface javax.lang.model.element.TypeParameterElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokespecial io.vertx.codegen.TypeParamInfo$Class.<init>:(Ljava/lang/String;ILjava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // javax.lang.model.element.TypeParameterElement typeParamElt
         7: .line 213
            iinc 5 /* index */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* index */
            aload 4 /* typeParamElts */
            invokeinterface java.util.List.size:()I
            if_icmplt 5
        end local 5 // int index
         9: .line 217
            aload 2 /* typeParams */
            areturn
        end local 4 // java.util.List typeParamElts
        end local 3 // javax.lang.model.element.TypeElement elt
        end local 2 // java.util.List typeParams
        end local 1 // javax.lang.model.type.DeclaredType type
        end local 0 // io.vertx.codegen.type.TypeMirrorFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lio/vertx/codegen/type/TypeMirrorFactory;
            0   10     1           type  Ljavax/lang/model/type/DeclaredType;
            1   10     2     typeParams  Ljava/util/List<Lio/vertx/codegen/TypeParamInfo$Class;>;
            2   10     3            elt  Ljavax/lang/model/element/TypeElement;
            3   10     4  typeParamElts  Ljava/util/List<+Ljavax/lang/model/element/TypeParameterElement;>;
            4    9     5          index  I
            6    7     6   typeParamElt  Ljavax/lang/model/element/TypeParameterElement;
    Signature: (Ljavax/lang/model/type/DeclaredType;)Ljava/util/List<Lio/vertx/codegen/TypeParamInfo$Class;>;
    MethodParameters:
      Name  Flags
      type  

  static int[] $SWITCH_TABLE$javax$lang$model$type$TypeKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 24
            getstatic io.vertx.codegen.type.TypeMirrorFactory.$SWITCH_TABLE$javax$lang$model$type$TypeKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.lang.model.type.TypeKind.values:()[Ljavax/lang/model/type/TypeKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.lang.model.type.TypeKind.ARRAY:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 12
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.lang.model.type.TypeKind.BOOLEAN:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.lang.model.type.TypeKind.BYTE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.lang.model.type.TypeKind.CHAR:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 6
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic javax.lang.model.type.TypeKind.DECLARED:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 13
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic javax.lang.model.type.TypeKind.DOUBLE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 8
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic javax.lang.model.type.TypeKind.ERROR:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 14
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic javax.lang.model.type.TypeKind.EXECUTABLE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 18
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic javax.lang.model.type.TypeKind.FLOAT:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 7
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic javax.lang.model.type.TypeKind.INT:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_4
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic javax.lang.model.type.TypeKind.INTERSECTION:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 21
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic javax.lang.model.type.TypeKind.LONG:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_5
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic javax.lang.model.type.TypeKind.NONE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 10
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic javax.lang.model.type.TypeKind.NULL:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 11
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic javax.lang.model.type.TypeKind.OTHER:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 19
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic javax.lang.model.type.TypeKind.PACKAGE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 17
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic javax.lang.model.type.TypeKind.SHORT:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_3
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic javax.lang.model.type.TypeKind.TYPEVAR:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 15
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic javax.lang.model.type.TypeKind.UNION:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 20
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic javax.lang.model.type.TypeKind.VOID:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 9
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic javax.lang.model.type.TypeKind.WILDCARD:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 16
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            dup
            putstatic io.vertx.codegen.type.TypeMirrorFactory.$SWITCH_TABLE$javax$lang$model$type$TypeKind:[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
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
}
SourceFile: "TypeMirrorFactory.java"
InnerClasses:
  public Class = io.vertx.codegen.TypeParamInfo$Class of io.vertx.codegen.TypeParamInfo