public class io.vertx.codegen.ClassModel implements io.vertx.codegen.Model
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.codegen.ClassModel
  super_class: java.lang.Object
{
  public static final java.lang.String VERTX_READ_STREAM;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "io.vertx.core.streams.ReadStream"

  public static final java.lang.String VERTX_WRITE_STREAM;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "io.vertx.core.streams.WriteStream"

  public static final java.lang.String VERTX_ASYNC_RESULT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "io.vertx.core.AsyncResult"

  public static final java.lang.String VERTX_HANDLER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "io.vertx.core.Handler"

  public static final java.lang.String JSON_OBJECT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "io.vertx.core.json.JsonObject"

  public static final java.lang.String JSON_ARRAY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "io.vertx.core.json.JsonArray"

  public static final java.lang.String VERTX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "io.vertx.core.Vertx"

  public static final java.lang.String ITERABLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang.Iterable"

  public static final java.lang.String ITERATOR;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.util.Iterator"

  public static final java.lang.String FUNCTION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.util.function.Function"

  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected final javax.annotation.processing.ProcessingEnvironment env;
    descriptor: Ljavax/annotation/processing/ProcessingEnvironment;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.vertx.codegen.type.AnnotationValueInfoFactory annotationValueInfoFactory;
    descriptor: Lio/vertx/codegen/type/AnnotationValueInfoFactory;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final javax.annotation.processing.Messager messager;
    descriptor: Ljavax/annotation/processing/Messager;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.vertx.codegen.type.TypeMirrorFactory typeFactory;
    descriptor: Lio/vertx/codegen/type/TypeMirrorFactory;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.vertx.codegen.doc.Doc$Factory docFactory;
    descriptor: Lio/vertx/codegen/doc/Doc$Factory;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final javax.lang.model.element.TypeElement modelElt;
    descriptor: Ljavax/lang/model/element/TypeElement;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final javax.lang.model.util.Elements elementUtils;
    descriptor: Ljavax/lang/model/util/Elements;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final javax.lang.model.util.Types typeUtils;
    descriptor: Ljavax/lang/model/util/Types;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected boolean processed;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.util.LinkedHashMap<javax.lang.model.element.ExecutableElement, io.vertx.codegen.MethodInfo> methods;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/LinkedHashMap<Ljavax/lang/model/element/ExecutableElement;Lio/vertx/codegen/MethodInfo;>;

  protected java.util.LinkedHashMap<javax.lang.model.element.ExecutableElement, io.vertx.codegen.MethodInfo> anyJavaTypeMethods;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/LinkedHashMap<Ljavax/lang/model/element/ExecutableElement;Lio/vertx/codegen/MethodInfo;>;

  protected java.util.List<io.vertx.codegen.ConstantInfo> constants;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lio/vertx/codegen/ConstantInfo;>;

  protected java.util.Set<io.vertx.codegen.type.ClassTypeInfo> collectedTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Set<Lio/vertx/codegen/type/ClassTypeInfo;>;

  protected java.util.Set<io.vertx.codegen.type.ClassTypeInfo> importedTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Set<Lio/vertx/codegen/type/ClassTypeInfo;>;

  protected java.util.Set<io.vertx.codegen.type.ApiTypeInfo> referencedTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Set<Lio/vertx/codegen/type/ApiTypeInfo;>;

  protected java.util.Set<io.vertx.codegen.type.DataObjectTypeInfo> referencedDataObjectTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Set<Lio/vertx/codegen/type/DataObjectTypeInfo;>;

  protected java.util.Set<io.vertx.codegen.type.EnumTypeInfo> referencedEnumTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Set<Lio/vertx/codegen/type/EnumTypeInfo;>;

  protected boolean concrete;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.codegen.type.ClassTypeInfo type;
    descriptor: Lio/vertx/codegen/type/ClassTypeInfo;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String ifaceSimpleName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String ifaceFQCN;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String ifacePackageName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String ifaceComment;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.codegen.doc.Doc doc;
    descriptor: Lio/vertx/codegen/doc/Doc;
    flags: (0x0004) ACC_PROTECTED

  protected java.util.List<io.vertx.codegen.type.TypeInfo> superTypes;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;

  protected io.vertx.codegen.type.TypeInfo concreteSuperType;
    descriptor: Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0004) ACC_PROTECTED

  private java.util.List<io.vertx.codegen.type.TypeInfo> superTypeArguments;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;

  protected java.util.List<io.vertx.codegen.type.TypeInfo> abstractSuperTypes;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;

  protected io.vertx.codegen.type.TypeInfo handlerArg;
    descriptor: Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.codegen.type.TypeInfo readStreamArg;
    descriptor: Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.codegen.type.TypeInfo writeStreamArg;
    descriptor: Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.codegen.type.TypeInfo iterableArg;
    descriptor: Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.codegen.type.TypeInfo iteratorArg;
    descriptor: Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.codegen.type.TypeInfo[] functionArgs;
    descriptor: [Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0004) ACC_PROTECTED

  protected java.util.Map<java.lang.String, java.util.List<io.vertx.codegen.MethodInfo>> methodMap;
    descriptor: Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;>;

  protected java.util.Map<java.lang.String, java.util.List<io.vertx.codegen.type.AnnotationValueInfo>> methodAnnotationsMap;
    descriptor: Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/codegen/type/AnnotationValueInfo;>;>;

  protected java.util.List<io.vertx.codegen.type.AnnotationValueInfo> annotations;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lio/vertx/codegen/type/AnnotationValueInfo;>;

  protected boolean deprecated;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected io.vertx.codegen.doc.Text deprecatedDesc;
    descriptor: Lio/vertx/codegen/doc/Text;
    flags: (0x0004) ACC_PROTECTED

  private static volatile int[] $SWITCH_TABLE$io$vertx$codegen$type$ClassKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 58
            ldc Lio/vertx/codegen/ClassModel;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic io.vertx.codegen.ClassModel.logger:Ljava/util/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.annotation.processing.ProcessingEnvironment, javax.lang.model.element.TypeElement);
    descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/TypeElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.annotation.processing.ProcessingEnvironment env
        start local 2 // javax.lang.model.element.TypeElement modelElt
         0: .line 101
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 68
            aload 0 /* this */
            iconst_0
            putfield io.vertx.codegen.ClassModel.processed:Z
         2: .line 69
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield io.vertx.codegen.ClassModel.methods:Ljava/util/LinkedHashMap;
         3: .line 70
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield io.vertx.codegen.ClassModel.anyJavaTypeMethods:Ljava/util/LinkedHashMap;
         4: .line 71
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield io.vertx.codegen.ClassModel.constants:Ljava/util/List;
         5: .line 72
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield io.vertx.codegen.ClassModel.collectedTypes:Ljava/util/Set;
         6: .line 73
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield io.vertx.codegen.ClassModel.importedTypes:Ljava/util/Set;
         7: .line 74
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield io.vertx.codegen.ClassModel.referencedTypes:Ljava/util/Set;
         8: .line 75
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield io.vertx.codegen.ClassModel.referencedDataObjectTypes:Ljava/util/Set;
         9: .line 76
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield io.vertx.codegen.ClassModel.referencedEnumTypes:Ljava/util/Set;
        10: .line 84
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield io.vertx.codegen.ClassModel.superTypes:Ljava/util/List;
        11: .line 87
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield io.vertx.codegen.ClassModel.abstractSuperTypes:Ljava/util/List;
        12: .line 95
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield io.vertx.codegen.ClassModel.methodMap:Ljava/util/Map;
        13: .line 96
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield io.vertx.codegen.ClassModel.methodAnnotationsMap:Ljava/util/Map;
        14: .line 102
            aload 0 /* this */
            aload 1 /* env */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            putfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
        15: .line 103
            aload 0 /* this */
            aload 1 /* env */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            putfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
        16: .line 104
            aload 0 /* this */
            aload 1 /* env */
            putfield io.vertx.codegen.ClassModel.env:Ljavax/annotation/processing/ProcessingEnvironment;
        17: .line 105
            aload 0 /* this */
            new io.vertx.codegen.type.TypeMirrorFactory
            dup
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            invokespecial io.vertx.codegen.type.TypeMirrorFactory.<init>:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;)V
            putfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
        18: .line 106
            aload 0 /* this */
            new io.vertx.codegen.doc.Doc$Factory
            dup
            aload 1 /* env */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getMessager:()Ljavax/annotation/processing/Messager;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 2 /* modelElt */
            invokespecial io.vertx.codegen.doc.Doc$Factory.<init>:(Ljavax/annotation/processing/Messager;Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Lio/vertx/codegen/type/TypeMirrorFactory;Ljavax/lang/model/element/TypeElement;)V
            putfield io.vertx.codegen.ClassModel.docFactory:Lio/vertx/codegen/doc/Doc$Factory;
        19: .line 107
            aload 0 /* this */
            aload 1 /* env */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getMessager:()Ljavax/annotation/processing/Messager;
            putfield io.vertx.codegen.ClassModel.messager:Ljavax/annotation/processing/Messager;
        20: .line 108
            aload 0 /* this */
            aload 2 /* modelElt */
            putfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
        21: .line 109
            aload 0 /* this */
            new io.vertx.codegen.type.AnnotationValueInfoFactory
            dup
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            invokespecial io.vertx.codegen.type.AnnotationValueInfoFactory.<init>:(Lio/vertx/codegen/type/TypeMirrorFactory;)V
            putfield io.vertx.codegen.ClassModel.annotationValueInfoFactory:Lio/vertx/codegen/type/AnnotationValueInfoFactory;
        22: .line 110
            aload 0 /* this */
            aload 2 /* modelElt */
            ldc Ljava/lang/Deprecated;
            invokeinterface javax.lang.model.element.TypeElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 23
            iconst_1
            goto 24
      StackMap locals: io.vertx.codegen.ClassModel javax.annotation.processing.ProcessingEnvironment javax.lang.model.element.TypeElement
      StackMap stack: io.vertx.codegen.ClassModel
        23: iconst_0
      StackMap locals: io.vertx.codegen.ClassModel javax.annotation.processing.ProcessingEnvironment javax.lang.model.element.TypeElement
      StackMap stack: io.vertx.codegen.ClassModel int
        24: putfield io.vertx.codegen.ClassModel.deprecated:Z
        25: .line 111
            return
        end local 2 // javax.lang.model.element.TypeElement modelElt
        end local 1 // javax.annotation.processing.ProcessingEnvironment env
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   26     0      this  Lio/vertx/codegen/ClassModel;
            0   26     1       env  Ljavax/annotation/processing/ProcessingEnvironment;
            0   26     2  modelElt  Ljavax/lang/model/element/TypeElement;
    MethodParameters:
          Name  Flags
      env       
      modelElt  

  private static boolean rawTypeIs(io.vertx.codegen.type.TypeInfo, java.lang.Class<?>[]);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;[Ljava/lang/Class;)Z
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // io.vertx.codegen.type.TypeInfo type
        start local 1 // java.lang.Class[] classes
         0: .line 114
            aload 0 /* type */
            instanceof io.vertx.codegen.type.ParameterizedTypeInfo
            ifeq 8
         1: .line 115
            aload 0 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getName:()Ljava/lang/String;
            astore 2 /* rawClassName */
        start local 2 // java.lang.String rawClassName
         2: .line 116
            aload 1 /* classes */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: io.vertx.codegen.type.TypeInfo java.lang.Class[] java.lang.String top int int java.lang.Class[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* c */
        start local 3 // java.lang.Class c
         4: .line 117
            aload 2 /* rawClassName */
            aload 3 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 118
            iconst_1
            ireturn
        end local 3 // java.lang.Class c
         6: .line 116
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 3
        end local 2 // java.lang.String rawClassName
         8: .line 123
      StackMap locals: io.vertx.codegen.type.TypeInfo java.lang.Class[]
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Class[] classes
        end local 0 // io.vertx.codegen.type.TypeInfo type
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          type  Lio/vertx/codegen/type/TypeInfo;
            0    9     1       classes  [Ljava/lang/Class;
            2    8     2  rawClassName  Ljava/lang/String;
            4    6     3             c  Ljava/lang/Class<*>;
    Signature: (Lio/vertx/codegen/type/TypeInfo;[Ljava/lang/Class<*>;)Z
    MethodParameters:
         Name  Flags
      type     
      classes  

  public java.lang.String getKind();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 128
            ldc "class"
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public java.lang.String getFqn();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 133
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.type:Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getName:()Ljava/lang/String;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public javax.lang.model.element.TypeElement getElement();
    descriptor: ()Ljavax/lang/model/element/TypeElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 137
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public java.util.List<io.vertx.codegen.MethodInfo> getMethods();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 141
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methods:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;

  public java.util.List<io.vertx.codegen.MethodInfo> getAnyJavaTypeMethods();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 145
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.anyJavaTypeMethods:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;

  public java.util.List<io.vertx.codegen.MethodInfo> getStaticMethods();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 149
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methods:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/MethodInfo.isStaticMethod()Z (5)
                  (Lio/vertx/codegen/MethodInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;

  public java.util.List<io.vertx.codegen.MethodInfo> getInstanceMethods();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 153
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methods:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$1(Lio/vertx/codegen/MethodInfo;)Z (6)
                  (Lio/vertx/codegen/MethodInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;

  public java.util.List<io.vertx.codegen.ConstantInfo> getConstants();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 157
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.constants:Ljava/util/List;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/ConstantInfo;>;

  public boolean isConcrete();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 161
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.concrete:Z
            ireturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public java.util.Set<io.vertx.codegen.type.ClassTypeInfo> getImportedTypes();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 168
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.importedTypes:Ljava/util/Set;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/Set<Lio/vertx/codegen/type/ClassTypeInfo;>;

  public java.util.Set<io.vertx.codegen.type.ApiTypeInfo> getReferencedTypes();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 175
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.referencedTypes:Ljava/util/Set;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/Set<Lio/vertx/codegen/type/ApiTypeInfo;>;

  public java.util.Set<io.vertx.codegen.type.DataObjectTypeInfo> getReferencedDataObjectTypes();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 182
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.referencedDataObjectTypes:Ljava/util/Set;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/Set<Lio/vertx/codegen/type/DataObjectTypeInfo;>;

  public java.util.Set<io.vertx.codegen.type.EnumTypeInfo> getReferencedEnumTypes();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 189
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.referencedEnumTypes:Ljava/util/Set;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/Set<Lio/vertx/codegen/type/EnumTypeInfo;>;

  public java.lang.String getIfaceSimpleName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 193
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.ifaceSimpleName:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public java.lang.String getIfaceFQCN();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 197
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.ifaceFQCN:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public java.lang.String getIfacePackageName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 201
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.ifacePackageName:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public java.lang.String getIfaceComment();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 205
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.ifaceComment:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.doc.Doc getDoc();
    descriptor: ()Lio/vertx/codegen/doc/Doc;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 209
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.doc:Lio/vertx/codegen/doc/Doc;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.type.ClassTypeInfo getType();
    descriptor: ()Lio/vertx/codegen/type/ClassTypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 213
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.type:Lio/vertx/codegen/type/ClassTypeInfo;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.ModuleInfo getModule();
    descriptor: ()Lio/vertx/codegen/ModuleInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 217
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.type:Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getModule:()Lio/vertx/codegen/ModuleInfo;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public java.util.List<io.vertx.codegen.type.TypeInfo> getSuperTypes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 221
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.superTypes:Ljava/util/List;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;

  public io.vertx.codegen.type.TypeInfo getConcreteSuperType();
    descriptor: ()Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 225
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.concreteSuperType:Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public java.util.List<io.vertx.codegen.type.TypeInfo> getAbstractSuperTypes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 229
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.abstractSuperTypes:Ljava/util/List;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;

  public java.util.Map<java.lang.String, java.util.List<io.vertx.codegen.MethodInfo>> getMethodMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 233
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methodMap:Ljava/util/Map;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;>;

  public java.util.List<io.vertx.codegen.TypeParamInfo$Class> getTypeParams();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 237
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.type:Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getParams:()Ljava/util/List;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/TypeParamInfo$Class;>;

  public java.util.List<io.vertx.codegen.type.TypeInfo> getSuperTypeArguments();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 241
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.superTypeArguments:Ljava/util/List;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;

  public java.util.List<io.vertx.codegen.type.AnnotationValueInfo> getAnnotations();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 248
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.annotations:Ljava/util/List;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/List<Lio/vertx/codegen/type/AnnotationValueInfo;>;

  public java.util.Map<java.lang.String, java.util.List<io.vertx.codegen.type.AnnotationValueInfo>> getMethodAnnotations();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 255
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methodAnnotationsMap:Ljava/util/Map;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/codegen/type/AnnotationValueInfo;>;>;

  private void sortMethodMap(java.util.Map<java.lang.String, java.util.List<io.vertx.codegen.MethodInfo>>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // java.util.Map map
         0: .line 259
            aload 1 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: io.vertx.codegen.ClassModel java.util.Map top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* list */
        start local 2 // java.util.List list
         2: .line 260
            aload 2 /* list */
            invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)I
                  io/vertx/codegen/ClassModel.lambda$2(Lio/vertx/codegen/MethodInfo;)I (6)
                  (Lio/vertx/codegen/MethodInfo;)I
            invokestatic java.util.Comparator.comparingInt:(Ljava/util/function/ToIntFunction;)Ljava/util/Comparator;
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
        end local 2 // java.util.List list
         3: .line 259
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 262
            return
        end local 1 // java.util.Map map
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/codegen/ClassModel;
            0    5     1   map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;>;
            2    3     2  list  Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;>;)V
    MethodParameters:
      Name  Flags
      map   

  protected void checkSuperType(javax.lang.model.element.Element, io.vertx.codegen.type.TypeInfo);
    descriptor: (Ljavax/lang/model/element/Element;Lio/vertx/codegen/type/TypeInfo;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.Element elt
        start local 2 // io.vertx.codegen.type.TypeInfo type
         0: .line 265
            aload 2 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.API:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 3
         1: .line 266
            aload 0 /* this */
            aload 2 /* type */
            iconst_1
            invokevirtual io.vertx.codegen.ClassModel.isVertxGenInterface:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifne 3
         2: .line 267
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elt */
            new java.lang.StringBuilder
            dup
            ldc "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 " is not legal for use for super type in code generation"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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 270
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.codegen.type.TypeInfo type
        end local 1 // javax.lang.model.element.Element elt
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/codegen/ClassModel;
            0    4     1   elt  Ljavax/lang/model/element/Element;
            0    4     2  type  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
      Name  Flags
      elt   
      type  

  protected void checkParamType(javax.lang.model.element.ExecutableElement, javax.lang.model.type.TypeMirror, io.vertx.codegen.type.TypeInfo, int, int, boolean);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/TypeMirror;Lio/vertx/codegen/type/TypeInfo;IIZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=7, args_size=7
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.ExecutableElement elem
        start local 2 // javax.lang.model.type.TypeMirror type
        start local 3 // io.vertx.codegen.type.TypeInfo typeInfo
        start local 4 // int pos
        start local 5 // int numParams
        start local 6 // boolean allowAnyJavaType
         0: .line 273
            aload 0 /* this */
            aload 3 /* typeInfo */
            iload 6 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalNonCallableParam:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 2
         1: .line 274
            return
         2: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* elem */
            aload 3 /* typeInfo */
            invokevirtual io.vertx.codegen.ClassModel.isLegalClassTypeParam:(Ljavax/lang/model/element/ExecutableElement;Lio/vertx/codegen/type/TypeInfo;)Z
            ifeq 4
         3: .line 277
            return
         4: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* typeInfo */
            iload 6 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalHandlerType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 6
         5: .line 280
            return
         6: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* typeInfo */
            iload 6 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalHandlerAsyncResultType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 8
         7: .line 283
            return
         8: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* typeInfo */
            iload 6 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalFunctionType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 10
         9: .line 286
            return
        10: .line 288
      StackMap locals:
      StackMap stack:
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            new java.lang.StringBuilder
            dup
            ldc "type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* typeInfo */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not legal for use for a parameter in code generation"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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
        end local 6 // boolean allowAnyJavaType
        end local 5 // int numParams
        end local 4 // int pos
        end local 3 // io.vertx.codegen.type.TypeInfo typeInfo
        end local 2 // javax.lang.model.type.TypeMirror type
        end local 1 // javax.lang.model.element.ExecutableElement elem
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lio/vertx/codegen/ClassModel;
            0   11     1              elem  Ljavax/lang/model/element/ExecutableElement;
            0   11     2              type  Ljavax/lang/model/type/TypeMirror;
            0   11     3          typeInfo  Lio/vertx/codegen/type/TypeInfo;
            0   11     4               pos  I
            0   11     5         numParams  I
            0   11     6  allowAnyJavaType  Z
    MethodParameters:
                  Name  Flags
      elem              
      type              
      typeInfo          
      pos               
      numParams         
      allowAnyJavaType  

  protected void checkReturnType(javax.lang.model.element.ExecutableElement, io.vertx.codegen.type.TypeInfo, javax.lang.model.type.TypeMirror, boolean);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;Lio/vertx/codegen/type/TypeInfo;Ljavax/lang/model/type/TypeMirror;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.ExecutableElement elem
        start local 2 // io.vertx.codegen.type.TypeInfo type
        start local 3 // javax.lang.model.type.TypeMirror typeMirror
        start local 4 // boolean allowAnyJavaType
         0: .line 292
            aload 2 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.isVoid:()Z
            ifeq 2
         1: .line 293
            return
         2: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* type */
            iload 4 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalNonCallableReturnType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 4
         3: .line 296
            return
         4: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* type */
            iload 4 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalHandlerType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 6
         5: .line 299
            return
         6: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* type */
            iload 4 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalHandlerAsyncResultType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 8
         7: .line 302
            return
         8: .line 304
      StackMap locals:
      StackMap stack:
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            new java.lang.StringBuilder
            dup
            ldc "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 " is not legal for use for a return type in code generation"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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
        end local 4 // boolean allowAnyJavaType
        end local 3 // javax.lang.model.type.TypeMirror typeMirror
        end local 2 // io.vertx.codegen.type.TypeInfo type
        end local 1 // javax.lang.model.element.ExecutableElement elem
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lio/vertx/codegen/ClassModel;
            0    9     1              elem  Ljavax/lang/model/element/ExecutableElement;
            0    9     2              type  Lio/vertx/codegen/type/TypeInfo;
            0    9     3        typeMirror  Ljavax/lang/model/type/TypeMirror;
            0    9     4  allowAnyJavaType  Z
    MethodParameters:
                  Name  Flags
      elem              
      type              
      typeMirror        
      allowAnyJavaType  

  protected void checkConstantType(javax.lang.model.element.VariableElement, io.vertx.codegen.type.TypeInfo, javax.lang.model.type.TypeMirror, boolean);
    descriptor: (Ljavax/lang/model/element/VariableElement;Lio/vertx/codegen/type/TypeInfo;Ljavax/lang/model/type/TypeMirror;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.VariableElement elem
        start local 2 // io.vertx.codegen.type.TypeInfo type
        start local 3 // javax.lang.model.type.TypeMirror typeMirror
        start local 4 // boolean allowAnyJavaType
         0: .line 308
            aload 0 /* this */
            aload 2 /* type */
            iload 4 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalNonCallableReturnType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 2
         1: .line 309
            return
         2: .line 311
      StackMap locals:
      StackMap stack:
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            new java.lang.StringBuilder
            dup
            ldc "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 " is not legal for use for a constant type in code generation"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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
        end local 4 // boolean allowAnyJavaType
        end local 3 // javax.lang.model.type.TypeMirror typeMirror
        end local 2 // io.vertx.codegen.type.TypeInfo type
        end local 1 // javax.lang.model.element.VariableElement elem
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lio/vertx/codegen/ClassModel;
            0    3     1              elem  Ljavax/lang/model/element/VariableElement;
            0    3     2              type  Lio/vertx/codegen/type/TypeInfo;
            0    3     3        typeMirror  Ljavax/lang/model/type/TypeMirror;
            0    3     4  allowAnyJavaType  Z
    MethodParameters:
                  Name  Flags
      elem              
      type              
      typeMirror        
      allowAnyJavaType  

  private boolean isLegalNonCallableReturnType(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
        start local 2 // boolean allowAnyJavaType
         0: .line 318
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getfield io.vertx.codegen.type.ClassKind.basic:Z
            ifeq 2
         1: .line 319
            iconst_1
            ireturn
         2: .line 321
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getfield io.vertx.codegen.type.ClassKind.json:Z
            ifeq 4
         3: .line 322
            iconst_1
            ireturn
         4: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual io.vertx.codegen.ClassModel.isLegalDataObjectTypeReturn:(Lio/vertx/codegen/type/TypeInfo;)Z
            ifeq 6
         5: .line 325
            iconst_1
            ireturn
         6: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual io.vertx.codegen.ClassModel.isLegalEnum:(Lio/vertx/codegen/type/TypeInfo;)Z
            ifeq 8
         7: .line 328
            iconst_1
            ireturn
         8: .line 330
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.THROWABLE:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 10
         9: .line 331
            iconst_1
            ireturn
        10: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual io.vertx.codegen.ClassModel.isTypeVariable:(Lio/vertx/codegen/type/TypeInfo;)Z
            ifeq 12
        11: .line 334
            iconst_1
            ireturn
        12: .line 336
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 14
        13: .line 337
            iconst_1
            ireturn
        14: .line 339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            iconst_1
            invokevirtual io.vertx.codegen.ClassModel.isVertxGenInterface:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 16
        15: .line 340
            iconst_1
            ireturn
        16: .line 342
      StackMap locals:
      StackMap stack:
            iload 2 /* allowAnyJavaType */
            ifeq 18
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.OTHER:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 18
        17: .line 343
            iconst_1
            ireturn
        18: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalContainerReturn:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 20
        19: .line 346
            iconst_1
            ireturn
        20: .line 348
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lio/vertx/codegen/ClassModel;
            0   21     1              type  Lio/vertx/codegen/type/TypeInfo;
            0   21     2  allowAnyJavaType  Z
    MethodParameters:
                  Name  Flags
      type              
      allowAnyJavaType  

  private boolean isLegalEnum(io.vertx.codegen.type.TypeInfo);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo info
         0: .line 352
            aload 1 /* info */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.ENUM:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // io.vertx.codegen.type.TypeInfo info
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/codegen/ClassModel;
            0    2     1  info  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
      Name  Flags
      info  

  private boolean isLegalNonCallableParam(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo typeInfo
        start local 2 // boolean allowAnyJavaType
         0: .line 359
            aload 1 /* typeInfo */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getfield io.vertx.codegen.type.ClassKind.basic:Z
            ifeq 2
         1: .line 360
            iconst_1
            ireturn
         2: .line 362
      StackMap locals:
      StackMap stack:
            aload 1 /* typeInfo */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getfield io.vertx.codegen.type.ClassKind.json:Z
            ifeq 4
         3: .line 363
            iconst_1
            ireturn
         4: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeInfo */
            invokevirtual io.vertx.codegen.ClassModel.isLegalDataObjectTypeParam:(Lio/vertx/codegen/type/TypeInfo;)Z
            ifeq 6
         5: .line 366
            iconst_1
            ireturn
         6: .line 368
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeInfo */
            invokevirtual io.vertx.codegen.ClassModel.isLegalEnum:(Lio/vertx/codegen/type/TypeInfo;)Z
            ifeq 8
         7: .line 369
            iconst_1
            ireturn
         8: .line 371
      StackMap locals:
      StackMap stack:
            aload 1 /* typeInfo */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.THROWABLE:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 10
         9: .line 372
            iconst_1
            ireturn
        10: .line 374
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeInfo */
            invokevirtual io.vertx.codegen.ClassModel.isTypeVariable:(Lio/vertx/codegen/type/TypeInfo;)Z
            ifeq 12
        11: .line 375
            iconst_1
            ireturn
        12: .line 377
      StackMap locals:
      StackMap stack:
            aload 1 /* typeInfo */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 14
        13: .line 378
            iconst_1
            ireturn
        14: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeInfo */
            iconst_1
            invokevirtual io.vertx.codegen.ClassModel.isVertxGenInterface:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 16
        15: .line 381
            iconst_1
            ireturn
        16: .line 383
      StackMap locals:
      StackMap stack:
            iload 2 /* allowAnyJavaType */
            ifeq 18
            aload 1 /* typeInfo */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.OTHER:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 18
        17: .line 384
            iconst_1
            ireturn
        18: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeInfo */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalContainerParam:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 20
        19: .line 387
            iconst_1
            ireturn
        20: .line 389
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo typeInfo
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lio/vertx/codegen/ClassModel;
            0   21     1          typeInfo  Lio/vertx/codegen/type/TypeInfo;
            0   21     2  allowAnyJavaType  Z
    MethodParameters:
                  Name  Flags
      typeInfo          
      allowAnyJavaType  

  private boolean isTypeVariable(io.vertx.codegen.type.TypeInfo);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
         0: .line 393
            aload 1 /* type */
            instanceof io.vertx.codegen.type.TypeVariableInfo
            ireturn
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
            0    1     1  type  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
      Name  Flags
      type  

  private boolean isLegalDataObjectTypeParam(io.vertx.codegen.type.TypeInfo);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
         0: .line 397
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.DATA_OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 5
         1: .line 398
            aload 1 /* type */
            checkcast io.vertx.codegen.type.DataObjectTypeInfo
            astore 2 /* classType */
        start local 2 // io.vertx.codegen.type.DataObjectTypeInfo classType
         2: .line 399
            aload 2 /* classType */
            invokevirtual io.vertx.codegen.type.DataObjectTypeInfo.isAbstract:()Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: io.vertx.codegen.type.DataObjectTypeInfo
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 2 // io.vertx.codegen.type.DataObjectTypeInfo classType
         5: .line 401
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lio/vertx/codegen/ClassModel;
            0    6     1       type  Lio/vertx/codegen/type/TypeInfo;
            2    5     2  classType  Lio/vertx/codegen/type/DataObjectTypeInfo;
    MethodParameters:
      Name  Flags
      type  

  private boolean isLegalClassTypeParam(javax.lang.model.element.ExecutableElement, io.vertx.codegen.type.TypeInfo);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;Lio/vertx/codegen/type/TypeInfo;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.ExecutableElement elt
        start local 2 // io.vertx.codegen.type.TypeInfo type
         0: .line 405
            aload 2 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.CLASS_TYPE:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 10
            aload 2 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.isParameterized:()Z
            ifeq 10
         1: .line 406
            aload 2 /* type */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            astore 3 /* parameterized */
        start local 3 // io.vertx.codegen.type.ParameterizedTypeInfo parameterized
         2: .line 407
            aload 3 /* parameterized */
            iconst_0
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArg:(I)Lio/vertx/codegen/type/TypeInfo;
            astore 4 /* arg */
        start local 4 // io.vertx.codegen.type.TypeInfo arg
         3: .line 408
            aload 4 /* arg */
            invokevirtual io.vertx.codegen.type.TypeInfo.isVariable:()Z
            ifeq 10
         4: .line 409
            aload 4 /* arg */
            checkcast io.vertx.codegen.type.TypeVariableInfo
            astore 5 /* variable */
        start local 5 // io.vertx.codegen.type.TypeVariableInfo variable
         5: .line 410
            aload 1 /* elt */
            invokeinterface javax.lang.model.element.ExecutableElement.getTypeParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 9
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ParameterizedTypeInfo io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.TypeVariableInfo top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.TypeParameterElement
            astore 6 /* typeParamElt */
        start local 6 // javax.lang.model.element.TypeParameterElement typeParamElt
         7: .line 411
            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;
            aload 5 /* variable */
            invokevirtual io.vertx.codegen.type.TypeVariableInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 412
            iconst_1
            ireturn
        end local 6 // javax.lang.model.element.TypeParameterElement typeParamElt
         9: .line 410
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 5 // io.vertx.codegen.type.TypeVariableInfo variable
        end local 4 // io.vertx.codegen.type.TypeInfo arg
        end local 3 // io.vertx.codegen.type.ParameterizedTypeInfo parameterized
        10: .line 417
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement io.vertx.codegen.type.TypeInfo
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // io.vertx.codegen.type.TypeInfo type
        end local 1 // javax.lang.model.element.ExecutableElement elt
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lio/vertx/codegen/ClassModel;
            0   11     1            elt  Ljavax/lang/model/element/ExecutableElement;
            0   11     2           type  Lio/vertx/codegen/type/TypeInfo;
            2   10     3  parameterized  Lio/vertx/codegen/type/ParameterizedTypeInfo;
            3   10     4            arg  Lio/vertx/codegen/type/TypeInfo;
            5   10     5       variable  Lio/vertx/codegen/type/TypeVariableInfo;
            7    9     6   typeParamElt  Ljavax/lang/model/element/TypeParameterElement;
    MethodParameters:
      Name  Flags
      elt   
      type  

  protected boolean isLegalDataObjectTypeReturn(io.vertx.codegen.type.TypeInfo);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
         0: .line 421
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.DATA_OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 11
         1: .line 422
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 2 /* typeElt */
        start local 2 // javax.lang.model.element.TypeElement typeElt
         2: .line 423
            aload 2 /* typeElt */
            ifnull 11
         3: .line 424
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
         4: .line 425
            aload 2 /* typeElt */
            invokeinterface javax.lang.model.util.Elements.getAllMembers:(Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
         5: .line 426
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         6: .line 427
            getstatic io.vertx.codegen.Helper.FILTER_METHOD:Ljava/util/function/Function;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         7: .line 428
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$3(Ljavax/lang/model/element/ExecutableElement;)Z (6)
                  (Ljavax/lang/model/element/ExecutableElement;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         8: .line 431
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
         9: .line 424
            astore 3 /* opt */
        start local 3 // java.util.Optional opt
        10: .line 432
            aload 3 /* opt */
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 3 // java.util.Optional opt
        end local 2 // javax.lang.model.element.TypeElement typeElt
        11: .line 435
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lio/vertx/codegen/ClassModel;
            0   12     1     type  Lio/vertx/codegen/type/TypeInfo;
            2   11     2  typeElt  Ljavax/lang/model/element/TypeElement;
           10   11     3      opt  Ljava/util/Optional<Ljavax/lang/model/element/ExecutableElement;>;
    MethodParameters:
      Name  Flags
      type  

  protected boolean isLegalContainerParam(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
        start local 2 // boolean allowAnyJavaType
         0: .line 441
            aload 1 /* type */
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/util/List;
            aastore
            dup
            iconst_1
            ldc Ljava/util/Set;
            aastore
            dup
            iconst_2
            ldc Ljava/util/Map;
            aastore
            invokestatic io.vertx.codegen.ClassModel.rawTypeIs:(Lio/vertx/codegen/type/TypeInfo;[Ljava/lang/Class;)Z
            ifeq 10
         1: .line 442
            aload 1 /* type */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArgs:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 3 /* argument */
        start local 3 // io.vertx.codegen.type.TypeInfo argument
         2: .line 443
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.MAP:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 7
         3: .line 444
            aload 0 /* this */
            aload 3 /* argument */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalArgumentContainerParam:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifne 6
         4: .line 445
            aload 0 /* this */
            aload 3 /* argument */
            invokevirtual io.vertx.codegen.ClassModel.isLegalDataObjectTypeParam:(Lio/vertx/codegen/type/TypeInfo;)Z
            ifne 6
         5: .line 446
            aload 3 /* argument */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.ENUM:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 10
         6: .line 447
      StackMap locals: io.vertx.codegen.type.TypeInfo
      StackMap stack:
            iconst_1
            ireturn
         7: .line 449
      StackMap locals:
      StackMap stack:
            aload 3 /* argument */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.STRING:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 10
         8: .line 450
            aload 1 /* type */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArgs:()Ljava/util/List;
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 3 /* argument */
         9: .line 451
            aload 0 /* this */
            aload 3 /* argument */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalArgumentContainerParam:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ireturn
        end local 3 // io.vertx.codegen.type.TypeInfo argument
        10: .line 454
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lio/vertx/codegen/ClassModel;
            0   11     1              type  Lio/vertx/codegen/type/TypeInfo;
            0   11     2  allowAnyJavaType  Z
            2   10     3          argument  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
                  Name  Flags
      type              
      allowAnyJavaType  

  private boolean isLegalArgumentContainerParam(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo argument
        start local 2 // boolean allowAnyJavaType
         0: .line 458
            aload 1 /* argument */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            astore 3 /* argumentKind */
        start local 3 // io.vertx.codegen.type.ClassKind argumentKind
         1: .line 459
            aload 3 /* argumentKind */
            getfield io.vertx.codegen.type.ClassKind.basic:Z
            ifne 7
         2: .line 460
            aload 3 /* argumentKind */
            getfield io.vertx.codegen.type.ClassKind.json:Z
            ifne 7
         3: .line 461
            aload 0 /* this */
            aload 1 /* argument */
            iconst_0
            invokevirtual io.vertx.codegen.ClassModel.isVertxGenInterface:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifne 7
         4: .line 462
            aload 3 /* argumentKind */
            getstatic io.vertx.codegen.type.ClassKind.OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 7
         5: .line 463
            iload 2 /* allowAnyJavaType */
            ifeq 6
            aload 3 /* argumentKind */
            getstatic io.vertx.codegen.type.ClassKind.OTHER:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 7
         6: .line 459
      StackMap locals: io.vertx.codegen.type.ClassKind
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_1
            ireturn
        end local 3 // io.vertx.codegen.type.ClassKind argumentKind
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo argument
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0              this  Lio/vertx/codegen/ClassModel;
            0    8     1          argument  Lio/vertx/codegen/type/TypeInfo;
            0    8     2  allowAnyJavaType  Z
            1    8     3      argumentKind  Lio/vertx/codegen/type/ClassKind;
    MethodParameters:
                  Name  Flags
      argument          
      allowAnyJavaType  

  protected boolean isLegalContainerReturn(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
        start local 2 // boolean allowAnyJavaType
         0: .line 467
            aload 1 /* type */
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/util/List;
            aastore
            dup
            iconst_1
            ldc Ljava/util/Set;
            aastore
            dup
            iconst_2
            ldc Ljava/util/Map;
            aastore
            invokestatic io.vertx.codegen.ClassModel.rawTypeIs:(Lio/vertx/codegen/type/TypeInfo;[Ljava/lang/Class;)Z
            ifeq 14
         1: .line 468
            aload 1 /* type */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArgs:()Ljava/util/List;
            astore 3 /* args */
        start local 3 // java.util.List args
         2: .line 469
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.MAP:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 7
         3: .line 470
            aload 3 /* args */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.STRING:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 5
         4: .line 471
            iconst_0
            ireturn
         5: .line 473
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* args */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 4 /* valueType */
        start local 4 // io.vertx.codegen.type.TypeInfo valueType
         6: .line 474
            aload 0 /* this */
            aload 4 /* valueType */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalArgumentContainerReturn:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ireturn
        end local 4 // io.vertx.codegen.type.TypeInfo valueType
         7: .line 476
      StackMap locals:
      StackMap stack:
            aload 3 /* args */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 4 /* valueType */
        start local 4 // io.vertx.codegen.type.TypeInfo valueType
         8: .line 477
            aload 0 /* this */
            aload 4 /* valueType */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalArgumentContainerReturn:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifne 13
         9: .line 478
            aload 4 /* valueType */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.ENUM:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 13
        10: .line 479
            aload 0 /* this */
            aload 4 /* valueType */
            iconst_0
            invokevirtual io.vertx.codegen.ClassModel.isVertxGenInterface:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifne 13
        11: .line 480
            aload 0 /* this */
            aload 4 /* valueType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalDataObjectTypeReturn:(Lio/vertx/codegen/type/TypeInfo;)Z
            ifne 13
        12: .line 477
            iconst_0
            ireturn
      StackMap locals: io.vertx.codegen.type.TypeInfo
      StackMap stack:
        13: iconst_1
            ireturn
        end local 4 // io.vertx.codegen.type.TypeInfo valueType
        end local 3 // java.util.List args
        14: .line 483
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   15     0              this  Lio/vertx/codegen/ClassModel;
            0   15     1              type  Lio/vertx/codegen/type/TypeInfo;
            0   15     2  allowAnyJavaType  Z
            2   14     3              args  Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;
            6    7     4         valueType  Lio/vertx/codegen/type/TypeInfo;
            8   14     4         valueType  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
                  Name  Flags
      type              
      allowAnyJavaType  

  private boolean isLegalArgumentContainerReturn(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo argument
        start local 2 // boolean allowAnyJavaType
         0: .line 487
            aload 1 /* argument */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            astore 3 /* argumentKind */
        start local 3 // io.vertx.codegen.type.ClassKind argumentKind
         1: .line 488
            aload 3 /* argumentKind */
            getfield io.vertx.codegen.type.ClassKind.basic:Z
            ifne 6
         2: .line 489
            aload 3 /* argumentKind */
            getfield io.vertx.codegen.type.ClassKind.json:Z
            ifne 6
         3: .line 490
            aload 3 /* argumentKind */
            getstatic io.vertx.codegen.type.ClassKind.OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 6
         4: .line 491
            iload 2 /* allowAnyJavaType */
            ifeq 5
            aload 3 /* argumentKind */
            getstatic io.vertx.codegen.type.ClassKind.OTHER:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 6
         5: .line 488
      StackMap locals: io.vertx.codegen.type.ClassKind
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_1
            ireturn
        end local 3 // io.vertx.codegen.type.ClassKind argumentKind
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo argument
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lio/vertx/codegen/ClassModel;
            0    7     1          argument  Lio/vertx/codegen/type/TypeInfo;
            0    7     2  allowAnyJavaType  Z
            1    7     3      argumentKind  Lio/vertx/codegen/type/ClassKind;
    MethodParameters:
                  Name  Flags
      argument          
      allowAnyJavaType  

  private boolean isVertxGenInterface(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
        start local 2 // boolean allowParameterized
         0: .line 495
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.API:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 16
         1: .line 496
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.isParameterized:()Z
            ifeq 15
         2: .line 497
            iload 2 /* allowParameterized */
            ifeq 14
         3: .line 498
            aload 1 /* type */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            astore 3 /* parameterized */
        start local 3 // io.vertx.codegen.type.ParameterizedTypeInfo parameterized
         4: .line 499
            aload 3 /* parameterized */
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArgs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: io.vertx.codegen.ClassModel io.vertx.codegen.type.TypeInfo int io.vertx.codegen.type.ParameterizedTypeInfo top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 4 /* paramType */
        start local 4 // io.vertx.codegen.type.TypeInfo paramType
         6: .line 500
            aload 4 /* paramType */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            astore 6 /* kind */
        start local 6 // io.vertx.codegen.type.ClassKind kind
         7: .line 501
            aload 6 /* kind */
            getstatic io.vertx.codegen.type.ClassKind.API:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 10
            aload 4 /* paramType */
            invokevirtual io.vertx.codegen.type.TypeInfo.isVariable:()Z
            ifne 10
            aload 6 /* kind */
            getstatic io.vertx.codegen.type.ClassKind.VOID:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 10
         8: .line 502
            aload 6 /* kind */
            getfield io.vertx.codegen.type.ClassKind.basic:Z
            ifne 10
            aload 6 /* kind */
            getfield io.vertx.codegen.type.ClassKind.json:Z
            ifne 10
            aload 6 /* kind */
            getstatic io.vertx.codegen.type.ClassKind.DATA_OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 10
            aload 6 /* kind */
            getstatic io.vertx.codegen.type.ClassKind.ENUM:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 10
            aload 6 /* kind */
            getstatic io.vertx.codegen.type.ClassKind.OTHER:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 10
         9: .line 503
            iconst_0
            ireturn
        10: .line 505
      StackMap locals: io.vertx.codegen.ClassModel io.vertx.codegen.type.TypeInfo int io.vertx.codegen.type.ParameterizedTypeInfo io.vertx.codegen.type.TypeInfo java.util.Iterator io.vertx.codegen.type.ClassKind
      StackMap stack:
            aload 4 /* paramType */
            invokevirtual io.vertx.codegen.type.TypeInfo.isNullable:()Z
            ifeq 12
        11: .line 506
            iconst_0
            ireturn
        end local 6 // io.vertx.codegen.type.ClassKind kind
        end local 4 // io.vertx.codegen.type.TypeInfo paramType
        12: .line 499
      StackMap locals: io.vertx.codegen.ClassModel io.vertx.codegen.type.TypeInfo int io.vertx.codegen.type.ParameterizedTypeInfo top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        13: .line 509
            iconst_1
            ireturn
        end local 3 // io.vertx.codegen.type.ParameterizedTypeInfo parameterized
        14: .line 511
      StackMap locals: io.vertx.codegen.ClassModel io.vertx.codegen.type.TypeInfo int
      StackMap stack:
            iconst_0
            ireturn
        15: .line 514
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        16: .line 517
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean allowParameterized
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                this  Lio/vertx/codegen/ClassModel;
            0   17     1                type  Lio/vertx/codegen/type/TypeInfo;
            0   17     2  allowParameterized  Z
            4   14     3       parameterized  Lio/vertx/codegen/type/ParameterizedTypeInfo;
            6   12     4           paramType  Lio/vertx/codegen/type/TypeInfo;
            7   12     6                kind  Lio/vertx/codegen/type/ClassKind;
    MethodParameters:
                    Name  Flags
      type                
      allowParameterized  

  private boolean isLegalFunctionType(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo typeInfo
        start local 2 // boolean allowAnyJavaType
         0: .line 521
            aload 1 /* typeInfo */
            invokevirtual io.vertx.codegen.type.TypeInfo.getErased:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.FUNCTION:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 5
         1: .line 522
            aload 1 /* typeInfo */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArgs:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 3 /* paramType */
        start local 3 // io.vertx.codegen.type.TypeInfo paramType
         2: .line 523
            aload 0 /* this */
            aload 3 /* paramType */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalCallbackValueType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifne 3
            aload 3 /* paramType */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.THROWABLE:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 5
         3: .line 524
      StackMap locals: io.vertx.codegen.type.TypeInfo
      StackMap stack:
            aload 1 /* typeInfo */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArgs:()Ljava/util/List;
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 4 /* returnType */
        start local 4 // io.vertx.codegen.type.TypeInfo returnType
         4: .line 525
            aload 0 /* this */
            aload 4 /* returnType */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalNonCallableParam:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ireturn
        end local 4 // io.vertx.codegen.type.TypeInfo returnType
        end local 3 // io.vertx.codegen.type.TypeInfo paramType
         5: .line 528
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo typeInfo
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lio/vertx/codegen/ClassModel;
            0    6     1          typeInfo  Lio/vertx/codegen/type/TypeInfo;
            0    6     2  allowAnyJavaType  Z
            2    5     3         paramType  Lio/vertx/codegen/type/TypeInfo;
            4    5     4        returnType  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
                  Name  Flags
      typeInfo          
      allowAnyJavaType  

  private boolean isLegalHandlerType(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
        start local 2 // boolean allowAnyJavaType
         0: .line 532
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getErased:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.HANDLER:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 4
         1: .line 533
            aload 1 /* type */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArgs:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 3 /* eventType */
        start local 3 // io.vertx.codegen.type.TypeInfo eventType
         2: .line 534
            aload 0 /* this */
            aload 3 /* eventType */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalCallbackValueType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifne 3
            aload 3 /* eventType */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.THROWABLE:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 4
         3: .line 535
      StackMap locals: io.vertx.codegen.type.TypeInfo
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // io.vertx.codegen.type.TypeInfo eventType
         4: .line 538
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lio/vertx/codegen/ClassModel;
            0    5     1              type  Lio/vertx/codegen/type/TypeInfo;
            0    5     2  allowAnyJavaType  Z
            2    4     3         eventType  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
                  Name  Flags
      type              
      allowAnyJavaType  

  private boolean isLegalHandlerAsyncResultType(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
        start local 2 // boolean allowAnyJavaType
         0: .line 542
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getErased:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.HANDLER:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 6
         1: .line 543
            aload 1 /* type */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArgs:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 3 /* eventType */
        start local 3 // io.vertx.codegen.type.TypeInfo eventType
         2: .line 544
            aload 3 /* eventType */
            invokevirtual io.vertx.codegen.type.TypeInfo.getErased:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.ASYNC_RESULT:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 6
            aload 3 /* eventType */
            invokevirtual io.vertx.codegen.type.TypeInfo.isNullable:()Z
            ifne 6
         3: .line 545
            aload 3 /* eventType */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArgs:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.type.TypeInfo
            astore 4 /* resultType */
        start local 4 // io.vertx.codegen.type.TypeInfo resultType
         4: .line 546
            aload 0 /* this */
            aload 4 /* resultType */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalCallbackValueType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ifeq 6
         5: .line 547
            iconst_1
            ireturn
        end local 4 // io.vertx.codegen.type.TypeInfo resultType
        end local 3 // io.vertx.codegen.type.TypeInfo eventType
         6: .line 551
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lio/vertx/codegen/ClassModel;
            0    7     1              type  Lio/vertx/codegen/type/TypeInfo;
            0    7     2  allowAnyJavaType  Z
            2    6     3         eventType  Lio/vertx/codegen/type/TypeInfo;
            4    6     4        resultType  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
                  Name  Flags
      type              
      allowAnyJavaType  

  private boolean isLegalCallbackValueType(io.vertx.codegen.type.TypeInfo, boolean);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.TypeInfo type
        start local 2 // boolean allowAnyJavaType
         0: .line 555
            aload 1 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.VOID:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 2
         1: .line 556
            iconst_1
            ireturn
         2: .line 558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.isLegalNonCallableReturnType:(Lio/vertx/codegen/type/TypeInfo;Z)Z
            ireturn
        end local 2 // boolean allowAnyJavaType
        end local 1 // io.vertx.codegen.type.TypeInfo type
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lio/vertx/codegen/ClassModel;
            0    3     1              type  Lio/vertx/codegen/type/TypeInfo;
            0    3     2  allowAnyJavaType  Z
    MethodParameters:
                  Name  Flags
      type              
      allowAnyJavaType  

  private void determineApiTypes();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 562
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.collectedTypes:Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 563
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/codegen/type/ClassTypeInfo.getRaw()Lio/vertx/codegen/type/ClassTypeInfo; (5)
                  (Lio/vertx/codegen/type/ClassTypeInfo;)Lio/vertx/codegen/type/ClassTypeInfo;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 564
            ldc Lio/vertx/codegen/type/ClassTypeInfo;
            invokestatic io.vertx.codegen.Helper.instanceOf:(Ljava/lang/Class;)Ljava/util/function/Function;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 565
            aload 0 /* this */
            invokedynamic test(Lio/vertx/codegen/ClassModel;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$5(Lio/vertx/codegen/type/ClassTypeInfo;)Z (7)
                  (Lio/vertx/codegen/type/ClassTypeInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         4: .line 566
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
         5: .line 562
            putfield io.vertx.codegen.ClassModel.importedTypes:Ljava/util/Set;
         6: .line 568
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.collectedTypes:Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         7: .line 569
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/codegen/type/ClassTypeInfo.getRaw()Lio/vertx/codegen/type/ClassTypeInfo; (5)
                  (Lio/vertx/codegen/type/ClassTypeInfo;)Lio/vertx/codegen/type/ClassTypeInfo;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         8: .line 570
            ldc Lio/vertx/codegen/type/ApiTypeInfo;
            invokestatic io.vertx.codegen.Helper.instanceOf:(Ljava/lang/Class;)Ljava/util/function/Function;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         9: .line 571
            aload 0 /* this */
            invokedynamic test(Lio/vertx/codegen/ClassModel;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$7(Lio/vertx/codegen/type/ApiTypeInfo;)Z (7)
                  (Lio/vertx/codegen/type/ApiTypeInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        10: .line 572
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        11: .line 568
            putfield io.vertx.codegen.ClassModel.referencedTypes:Ljava/util/Set;
        12: .line 574
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.collectedTypes:Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        13: .line 575
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/codegen/type/ClassTypeInfo.getRaw()Lio/vertx/codegen/type/ClassTypeInfo; (5)
                  (Lio/vertx/codegen/type/ClassTypeInfo;)Lio/vertx/codegen/type/ClassTypeInfo;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        14: .line 576
            ldc Lio/vertx/codegen/type/DataObjectTypeInfo;
            invokestatic io.vertx.codegen.Helper.instanceOf:(Ljava/lang/Class;)Ljava/util/function/Function;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        15: .line 577
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$9(Lio/vertx/codegen/type/DataObjectTypeInfo;)Z (6)
                  (Lio/vertx/codegen/type/DataObjectTypeInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        16: .line 578
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        17: .line 574
            putfield io.vertx.codegen.ClassModel.referencedDataObjectTypes:Ljava/util/Set;
        18: .line 580
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.collectedTypes:Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        19: .line 581
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/codegen/type/ClassTypeInfo.getRaw()Lio/vertx/codegen/type/ClassTypeInfo; (5)
                  (Lio/vertx/codegen/type/ClassTypeInfo;)Lio/vertx/codegen/type/ClassTypeInfo;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        20: .line 582
            ldc Lio/vertx/codegen/type/EnumTypeInfo;
            invokestatic io.vertx.codegen.Helper.instanceOf:(Ljava/lang/Class;)Ljava/util/function/Function;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        21: .line 583
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$11(Lio/vertx/codegen/type/EnumTypeInfo;)Z (6)
                  (Lio/vertx/codegen/type/EnumTypeInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        22: .line 584
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        23: .line 580
            putfield io.vertx.codegen.ClassModel.referencedEnumTypes:Ljava/util/Set;
        24: .line 585
            return
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   25     0  this  Lio/vertx/codegen/ClassModel;

  public boolean process();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 588
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.processed:Z
            ifne 6
         1: .line 589
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokevirtual io.vertx.codegen.ClassModel.traverseType:(Ljavax/lang/model/element/Element;)V
         2: .line 590
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.determineApiTypes:()V
         3: .line 591
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.processTypeAnnotations:()V
         4: .line 592
            aload 0 /* this */
            iconst_1
            putfield io.vertx.codegen.ClassModel.processed:Z
         5: .line 593
            iconst_1
            ireturn
         6: .line 595
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lio/vertx/codegen/ClassModel;

  private void processTypeAnnotations();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 600
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
         1: .line 601
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.util.Elements.getAllAnnotationMirrors:(Ljavax/lang/model/element/Element;)Ljava/util/List;
         2: .line 602
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         3: .line 603
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.annotationValueInfoFactory:Lio/vertx/codegen/type/AnnotationValueInfoFactory;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Lio/vertx/codegen/type/AnnotationValueInfoFactory;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/codegen/type/AnnotationValueInfoFactory.processAnnotation(Ljavax/lang/model/element/AnnotationMirror;)Lio/vertx/codegen/type/AnnotationValueInfo; (5)
                  (Ljavax/lang/model/element/AnnotationMirror;)Lio/vertx/codegen/type/AnnotationValueInfo;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 604
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         5: .line 600
            putfield io.vertx.codegen.ClassModel.annotations:Ljava/util/List;
         6: .line 605
            return
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lio/vertx/codegen/ClassModel;

  private void traverseType(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=15, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.Element elem
         0: .line 608
            aload 1 /* elem */
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.DeclaredType
            astore 2 /* declaredType */
        start local 2 // javax.lang.model.type.DeclaredType declaredType
         1: .line 610
            invokestatic io.vertx.codegen.ClassModel.$SWITCH_TABLE$javax$lang$model$element$ElementKind:()[I
            aload 1 /* elem */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            iaload
            tableswitch { // 2 - 5
                    2: 2
                    3: 2
                    4: 73
                    5: 3
              default: 73
          }
         2: .line 613
      StackMap locals: javax.lang.model.type.DeclaredType
      StackMap stack:
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            new java.lang.StringBuilder
            dup
            ldc "@VertxGen can only be used with interfaces or enums in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* declaredType */
            invokeinterface javax.lang.model.type.DeclaredType.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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 616
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.ifaceFQCN:Ljava/lang/String;
            ifnull 5
         4: .line 617
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            ldc "Can only have one interface per file"
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
         5: .line 619
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 2 /* declaredType */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            putfield io.vertx.codegen.ClassModel.type:Lio/vertx/codegen/type/ClassTypeInfo;
         6: .line 620
            aload 0 /* this */
            ldc "@VertxGen"
            invokestatic io.vertx.codegen.Helper.checkUnderModule:(Lio/vertx/codegen/Model;Ljava/lang/String;)V
         7: .line 621
            aload 0 /* this */
            aload 2 /* declaredType */
            invokeinterface javax.lang.model.type.DeclaredType.toString:()Ljava/lang/String;
            putfield io.vertx.codegen.ClassModel.ifaceFQCN:Ljava/lang/String;
         8: .line 622
            aload 0 /* this */
            aload 1 /* elem */
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            putfield io.vertx.codegen.ClassModel.ifaceSimpleName:Ljava/lang/String;
         9: .line 623
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1 /* elem */
            invokeinterface javax.lang.model.util.Elements.getPackageOf:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/PackageElement;
            invokeinterface javax.lang.model.element.PackageElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            putfield io.vertx.codegen.ClassModel.ifacePackageName:Ljava/lang/String;
        10: .line 624
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1 /* elem */
            invokeinterface javax.lang.model.util.Elements.getDocComment:(Ljavax/lang/model/element/Element;)Ljava/lang/String;
            putfield io.vertx.codegen.ClassModel.ifaceComment:Ljava/lang/String;
        11: .line 625
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.docFactory:Lio/vertx/codegen/doc/Doc$Factory;
            aload 1 /* elem */
            invokevirtual io.vertx.codegen.doc.Doc$Factory.createDoc:(Ljavax/lang/model/element/Element;)Lio/vertx/codegen/doc/Doc;
            putfield io.vertx.codegen.ClassModel.doc:Lio/vertx/codegen/doc/Doc;
        12: .line 626
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.doc:Lio/vertx/codegen/doc/Doc;
            ifnull 14
        13: .line 627
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.doc:Lio/vertx/codegen/doc/Doc;
            invokevirtual io.vertx.codegen.doc.Doc.getBlockTags:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$13(Lio/vertx/codegen/doc/Tag;)Z (6)
                  (Lio/vertx/codegen/doc/Tag;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            aload 0 /* this */
            invokedynamic accept(Lio/vertx/codegen/ClassModel;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/codegen/ClassModel.lambda$14(Lio/vertx/codegen/doc/Tag;)V (7)
                  (Lio/vertx/codegen/doc/Tag;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
        14: .line 630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.deprecated:Z
            ifne 15
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.deprecatedDesc:Lio/vertx/codegen/doc/Text;
            ifnonnull 15
            iconst_0
            goto 16
      StackMap locals:
      StackMap stack: io.vertx.codegen.ClassModel
        15: iconst_1
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType
      StackMap stack: io.vertx.codegen.ClassModel int
        16: putfield io.vertx.codegen.ClassModel.deprecated:Z
        17: .line 631
            aload 0 /* this */
            aload 1 /* elem */
            ldc Lio/vertx/codegen/annotations/VertxGen;
            invokeinterface javax.lang.model.element.Element.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 18
            aload 1 /* elem */
            ldc Lio/vertx/codegen/annotations/VertxGen;
            invokeinterface javax.lang.model.element.Element.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast io.vertx.codegen.annotations.VertxGen
            invokeinterface io.vertx.codegen.annotations.VertxGen.concrete:()Z
            ifne 18
            iconst_0
            goto 19
      StackMap locals:
      StackMap stack: io.vertx.codegen.ClassModel
        18: iconst_1
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType
      StackMap stack: io.vertx.codegen.ClassModel int
        19: putfield io.vertx.codegen.ClassModel.concrete:Z
        20: .line 632
            aload 2 /* declaredType */
            astore 3 /* tm */
        start local 3 // javax.lang.model.type.DeclaredType tm
        21: .line 633
            aload 3 /* tm */
            invokeinterface javax.lang.model.type.DeclaredType.getTypeArguments:()Ljava/util/List;
            astore 4 /* typeArgs */
        start local 4 // java.util.List typeArgs
        22: .line 634
            aload 4 /* typeArgs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 27
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.DeclaredType java.util.List top java.util.Iterator
      StackMap stack:
        23: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 5 /* typeArg */
        start local 5 // javax.lang.model.type.TypeMirror typeArg
        24: .line 635
            aload 5 /* typeArg */
            checkcast javax.lang.model.type.TypeVariable
            astore 7 /* varTypeArg */
        start local 7 // javax.lang.model.type.TypeVariable varTypeArg
        25: .line 636
            aload 0 /* this */
            aload 7 /* varTypeArg */
            invokeinterface javax.lang.model.type.TypeVariable.getUpperBound:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual io.vertx.codegen.ClassModel.isObjectBound:(Ljavax/lang/model/type/TypeMirror;)Z
            ifne 27
        26: .line 637
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            new java.lang.StringBuilder
            dup
            ldc "Type variable bounds not supported "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* varTypeArg */
            invokeinterface javax.lang.model.type.TypeVariable.getUpperBound:()Ljavax/lang/model/type/TypeMirror;
            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
        end local 7 // javax.lang.model.type.TypeVariable varTypeArg
        end local 5 // javax.lang.model.type.TypeMirror typeArg
        27: .line 634
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        28: .line 640
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 3 /* tm */
            invokeinterface javax.lang.model.util.Types.directSupertypes:(Ljavax/lang/model/type/TypeMirror;)Ljava/util/List;
            astore 5 /* st */
        start local 5 // java.util.List st
        29: .line 641
            aload 5 /* st */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 52
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.DeclaredType java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        30: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 6 /* tmSuper */
        start local 6 // javax.lang.model.type.TypeMirror tmSuper
        31: .line 642
            aload 6 /* tmSuper */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            ldc Ljava/lang/Object;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
        32: .line 645
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 6 /* tmSuper */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            astore 8 /* superTypeInfo */
        start local 8 // io.vertx.codegen.type.TypeInfo superTypeInfo
        33: .line 646
            goto 36
        end local 8 // io.vertx.codegen.type.TypeInfo superTypeInfo
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.DeclaredType java.util.List java.util.List javax.lang.model.type.TypeMirror java.util.Iterator
      StackMap stack: java.lang.IllegalArgumentException
        34: astore 9 /* e */
        start local 9 // java.lang.IllegalArgumentException e
        35: .line 647
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            aload 9 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.IllegalArgumentException e
        start local 8 // io.vertx.codegen.type.TypeInfo superTypeInfo
        36: .line 649
      StackMap locals: io.vertx.codegen.type.TypeInfo
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            aload 8 /* superTypeInfo */
            invokevirtual io.vertx.codegen.ClassModel.checkSuperType:(Ljavax/lang/model/element/Element;Lio/vertx/codegen/type/TypeInfo;)V
        37: .line 650
            invokestatic io.vertx.codegen.ClassModel.$SWITCH_TABLE$io$vertx$codegen$type$ClassKind:()[I
            aload 8 /* superTypeInfo */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iaload
            tableswitch { // 13 - 13
                   13: 38
              default: 51
          }
        38: .line 653
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 6 /* tmSuper */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            checkcast io.vertx.codegen.type.ApiTypeInfo
            astore 9 /* superType */
        start local 9 // io.vertx.codegen.type.ApiTypeInfo superType
        39: .line 654
            aload 9 /* superType */
            invokevirtual io.vertx.codegen.type.ApiTypeInfo.isConcrete:()Z
            ifeq 46
        40: .line 655
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.concrete:Z
            ifeq 43
        41: .line 656
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.concreteSuperType:Lio/vertx/codegen/type/TypeInfo;
            ifnull 44
        42: .line 657
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            ldc "A concrete interface cannot extend more than one concrete interfaces"
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        43: .line 660
      StackMap locals: io.vertx.codegen.type.ApiTypeInfo
      StackMap stack:
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            ldc "A abstract interface cannot extend a concrete interface"
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        44: .line 662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* superTypeInfo */
            putfield io.vertx.codegen.ClassModel.concreteSuperType:Lio/vertx/codegen/type/TypeInfo;
        45: .line 663
            goto 47
        46: .line 664
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.abstractSuperTypes:Ljava/util/List;
            aload 8 /* superTypeInfo */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        47: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.superTypes:Ljava/util/List;
            aload 8 /* superTypeInfo */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // io.vertx.codegen.type.ApiTypeInfo superType
        48: .line 667
            goto 51
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.DeclaredType java.util.List java.util.List javax.lang.model.type.TypeMirror java.util.Iterator io.vertx.codegen.type.TypeInfo
      StackMap stack: java.lang.Exception
        49: astore 9 /* e */
        start local 9 // java.lang.Exception e
        50: .line 668
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            aload 9 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.Exception e
        51: .line 673
      StackMap locals:
      StackMap stack:
            aload 8 /* superTypeInfo */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.collectedTypes:Ljava/util/Set;
            invokevirtual io.vertx.codegen.type.TypeInfo.collectImports:(Ljava/util/Collection;)V
        end local 8 // io.vertx.codegen.type.TypeInfo superTypeInfo
        end local 6 // javax.lang.model.type.TypeMirror tmSuper
        52: .line 641
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.DeclaredType java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        53: .line 676
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.concreteSuperType:Lio/vertx/codegen/type/TypeInfo;
            ifnull 73
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.concreteSuperType:Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.isParameterized:()Z
            ifeq 73
        54: .line 677
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.DeclaredType
            astore 3 /* tm */
        55: .line 678
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 3 /* tm */
            invokeinterface javax.lang.model.util.Types.directSupertypes:(Ljavax/lang/model/type/TypeMirror;)Ljava/util/List;
            astore 5 /* st */
        56: .line 679
            aload 5 /* st */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 72
      StackMap locals:
      StackMap stack:
        57: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 6 /* tmSuper */
        start local 6 // javax.lang.model.type.TypeMirror tmSuper
        58: .line 680
            aload 6 /* tmSuper */
            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 72
        59: .line 681
            aload 6 /* tmSuper */
            checkcast javax.lang.model.type.DeclaredType
            astore 8 /* abc */
        start local 8 // javax.lang.model.type.DeclaredType abc
        60: .line 682
            aload 8 /* abc */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 9 /* tt */
        start local 9 // javax.lang.model.element.TypeElement tt
        61: .line 683
            aload 9 /* tt */
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.concreteSuperType:Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 72
        62: .line 684
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* list */
        start local 10 // java.util.List list
        63: .line 685
            aload 9 /* tt */
            invokeinterface javax.lang.model.element.TypeElement.getTypeParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 11 /* size */
        start local 11 // int size
        64: .line 686
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        65: goto 70
        66: .line 687
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.DeclaredType java.util.List java.util.List javax.lang.model.type.TypeMirror java.util.Iterator javax.lang.model.type.DeclaredType javax.lang.model.element.TypeElement java.util.List int int
      StackMap stack:
            aload 8 /* abc */
            invokeinterface javax.lang.model.type.DeclaredType.getTypeArguments:()Ljava/util/List;
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 13 /* q */
        start local 13 // javax.lang.model.type.TypeMirror q
        67: .line 688
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 13 /* q */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            astore 14 /* ti */
        start local 14 // io.vertx.codegen.type.TypeInfo ti
        68: .line 689
            aload 10 /* list */
            aload 14 /* ti */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // io.vertx.codegen.type.TypeInfo ti
        end local 13 // javax.lang.model.type.TypeMirror q
        69: .line 686
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        70: iload 12 /* i */
            iload 11 /* size */
            if_icmplt 66
        end local 12 // int i
        71: .line 691
            aload 0 /* this */
            aload 10 /* list */
            putfield io.vertx.codegen.ClassModel.superTypeArguments:Ljava/util/List;
        end local 11 // int size
        end local 10 // java.util.List list
        end local 9 // javax.lang.model.element.TypeElement tt
        end local 8 // javax.lang.model.type.DeclaredType abc
        end local 6 // javax.lang.model.type.TypeMirror tmSuper
        72: .line 679
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.DeclaredType java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 57
        end local 5 // java.util.List st
        end local 4 // java.util.List typeArgs
        end local 3 // javax.lang.model.type.DeclaredType tm
        73: .line 700
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "io.vertx.core.Handler"
            aload 2 /* declaredType */
            invokevirtual io.vertx.codegen.ClassModel.extractArg:(Ljava/lang/String;Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
            putfield io.vertx.codegen.ClassModel.handlerArg:Lio/vertx/codegen/type/TypeInfo;
        74: .line 701
            aload 0 /* this */
            aload 0 /* this */
            ldc "io.vertx.core.streams.ReadStream"
            aload 2 /* declaredType */
            invokevirtual io.vertx.codegen.ClassModel.extractArg:(Ljava/lang/String;Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
            putfield io.vertx.codegen.ClassModel.readStreamArg:Lio/vertx/codegen/type/TypeInfo;
        75: .line 702
            aload 0 /* this */
            aload 0 /* this */
            ldc "io.vertx.core.streams.WriteStream"
            aload 2 /* declaredType */
            invokevirtual io.vertx.codegen.ClassModel.extractArg:(Ljava/lang/String;Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
            putfield io.vertx.codegen.ClassModel.writeStreamArg:Lio/vertx/codegen/type/TypeInfo;
        76: .line 703
            aload 0 /* this */
            aload 0 /* this */
            ldc "java.lang.Iterable"
            aload 2 /* declaredType */
            invokevirtual io.vertx.codegen.ClassModel.extractArg:(Ljava/lang/String;Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
            putfield io.vertx.codegen.ClassModel.iterableArg:Lio/vertx/codegen/type/TypeInfo;
        77: .line 704
            aload 0 /* this */
            aload 0 /* this */
            ldc "java.util.Iterator"
            aload 2 /* declaredType */
            invokevirtual io.vertx.codegen.ClassModel.extractArg:(Ljava/lang/String;Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
            putfield io.vertx.codegen.ClassModel.iteratorArg:Lio/vertx/codegen/type/TypeInfo;
        78: .line 705
            aload 0 /* this */
            aload 0 /* this */
            ldc "java.util.function.Function"
            aload 2 /* declaredType */
            invokevirtual io.vertx.codegen.ClassModel.extractArgs:(Ljava/lang/String;Ljavax/lang/model/type/DeclaredType;)[Lio/vertx/codegen/type/TypeInfo;
            putfield io.vertx.codegen.ClassModel.functionArgs:[Lio/vertx/codegen/type/TypeInfo;
        79: .line 708
            aload 1 /* elem */
            invokeinterface javax.lang.model.element.Element.getEnclosedElements:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 85
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType top java.util.Iterator
      StackMap stack:
        80: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.Element
            astore 3 /* enclosedElt */
        start local 3 // javax.lang.model.element.Element enclosedElt
        81: .line 709
            aload 3 /* enclosedElt */
            invokestatic io.vertx.codegen.ClassModel.isGenIgnore:(Ljavax/lang/model/element/Element;)Z
            ifne 85
        82: .line 710
            invokestatic io.vertx.codegen.ClassModel.$SWITCH_TABLE$javax$lang$model$element$ElementKind:()[I
            aload 3 /* enclosedElt */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            iaload
            tableswitch { // 7 - 11
                    7: 83
                    8: 84
                    9: 84
                   10: 84
                   11: 83
              default: 84
          }
        83: .line 714
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.element.Element java.util.Iterator
      StackMap stack:
            goto 85
        84: .line 716
      StackMap locals:
      StackMap stack:
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            new java.lang.StringBuilder
            dup
            ldc "@VertxGen can only declare methods and not "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* declaredType */
            invokeinterface javax.lang.model.type.DeclaredType.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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
        end local 3 // javax.lang.model.element.Element enclosedElt
        85: .line 708
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 80
        86: .line 721
            aload 1 /* elem */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.INTERFACE:Ljavax/lang/model/element/ElementKind;
            if_acmpne 110
        87: .line 723
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            ldc "java.lang.Object"
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 3 /* objectType */
        start local 3 // javax.lang.model.type.TypeMirror objectType
        88: .line 726
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1 /* elem */
            checkcast javax.lang.model.element.TypeElement
            invokeinterface javax.lang.model.util.Elements.getAllMembers:(Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        89: .line 727
            aload 0 /* this */
            aload 3 /* objectType */
            invokedynamic test(Lio/vertx/codegen/ClassModel;Ljavax/lang/model/type/TypeMirror;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$15(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/element/Element;)Z (7)
                  (Ljavax/lang/model/element/Element;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        90: .line 728
            getstatic io.vertx.codegen.Helper.FILTER_FIELD:Ljava/util/function/Function;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        91: .line 729
            aload 0 /* this */
            invokedynamic accept(Lio/vertx/codegen/ClassModel;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/codegen/ClassModel.lambda$16(Ljavax/lang/model/element/VariableElement;)V (7)
                  (Ljavax/lang/model/element/VariableElement;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        92: .line 750
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1 /* elem */
            checkcast javax.lang.model.element.TypeElement
            invokeinterface javax.lang.model.util.Elements.getAllMembers:(Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        93: .line 751
            aload 0 /* this */
            aload 3 /* objectType */
            invokedynamic test(Lio/vertx/codegen/ClassModel;Ljavax/lang/model/type/TypeMirror;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$17(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/element/Element;)Z (7)
                  (Ljavax/lang/model/element/Element;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        94: .line 752
            getstatic io.vertx.codegen.Helper.FILTER_METHOD:Ljava/util/function/Function;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        95: .line 753
            aload 0 /* this */
            invokedynamic accept(Lio/vertx/codegen/ClassModel;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/codegen/ClassModel.lambda$18(Ljavax/lang/model/element/ExecutableElement;)V (7)
                  (Ljavax/lang/model/element/ExecutableElement;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        96: .line 777
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methodMap:Ljava/util/Map;
            invokevirtual io.vertx.codegen.ClassModel.sortMethodMap:(Ljava/util/Map;)V
        97: .line 780
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methodMap:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 109
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.TypeMirror top java.util.Iterator
      StackMap stack:
        98: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* meths */
        start local 4 // java.util.List meths
        99: .line 784
            getstatic io.vertx.codegen.overloadcheck.MethodOverloadChecker.INSTANCE:Lio/vertx/codegen/overloadcheck/MethodOverloadChecker;
            aload 4 /* meths */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic test(Lio/vertx/codegen/ClassModel;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$19(Lio/vertx/codegen/MethodInfo;)Z (7)
                  (Lio/vertx/codegen/MethodInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokevirtual io.vertx.codegen.overloadcheck.MethodOverloadChecker.checkAmbiguous:(Ljava/util/stream/Stream;)V
       100: .line 785
            goto 103
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.TypeMirror java.util.List java.util.Iterator
      StackMap stack: java.lang.RuntimeException
       101: astore 6 /* e */
        start local 6 // java.lang.RuntimeException e
       102: .line 786
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            aload 6 /* e */
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.RuntimeException e
       103: .line 790
      StackMap locals:
      StackMap stack:
            aload 4 /* meths */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codegen.MethodInfo
            astore 6 /* first */
        start local 6 // io.vertx.codegen.MethodInfo first
       104: .line 791
            aload 4 /* meths */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 108
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.TypeMirror java.util.List java.util.Iterator io.vertx.codegen.MethodInfo top java.util.Iterator
      StackMap stack:
       105: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.codegen.MethodInfo
            astore 7 /* method */
        start local 7 // io.vertx.codegen.MethodInfo method
       106: .line 792
            aload 7 /* method */
            invokevirtual io.vertx.codegen.MethodInfo.isStaticMethod:()Z
            aload 6 /* first */
            invokevirtual io.vertx.codegen.MethodInfo.isStaticMethod:()Z
            if_icmpeq 108
       107: .line 793
            new io.vertx.codegen.GenException
            dup
            aload 1 /* elem */
            new java.lang.StringBuilder
            dup
            ldc "Overloaded method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* method */
            invokevirtual io.vertx.codegen.MethodInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " cannot be both static and instance"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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
        end local 7 // io.vertx.codegen.MethodInfo method
       108: .line 791
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 105
        end local 6 // io.vertx.codegen.MethodInfo first
        end local 4 // java.util.List meths
       109: .line 780
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType javax.lang.model.type.TypeMirror top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 98
        end local 3 // javax.lang.model.type.TypeMirror objectType
       110: .line 798
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.Element javax.lang.model.type.DeclaredType
      StackMap stack:
            return
        end local 2 // javax.lang.model.type.DeclaredType declaredType
        end local 1 // javax.lang.model.element.Element elem
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  111     0           this  Lio/vertx/codegen/ClassModel;
            0  111     1           elem  Ljavax/lang/model/element/Element;
            1  111     2   declaredType  Ljavax/lang/model/type/DeclaredType;
           21   73     3             tm  Ljavax/lang/model/type/DeclaredType;
           22   73     4       typeArgs  Ljava/util/List<+Ljavax/lang/model/type/TypeMirror;>;
           24   27     5        typeArg  Ljavax/lang/model/type/TypeMirror;
           25   27     7     varTypeArg  Ljavax/lang/model/type/TypeVariable;
           29   73     5             st  Ljava/util/List<+Ljavax/lang/model/type/TypeMirror;>;
           31   52     6        tmSuper  Ljavax/lang/model/type/TypeMirror;
           33   34     8  superTypeInfo  Lio/vertx/codegen/type/TypeInfo;
           36   52     8  superTypeInfo  Lio/vertx/codegen/type/TypeInfo;
           35   36     9              e  Ljava/lang/IllegalArgumentException;
           39   48     9      superType  Lio/vertx/codegen/type/ApiTypeInfo;
           50   51     9              e  Ljava/lang/Exception;
           58   72     6        tmSuper  Ljavax/lang/model/type/TypeMirror;
           60   72     8            abc  Ljavax/lang/model/type/DeclaredType;
           61   72     9             tt  Ljavax/lang/model/element/TypeElement;
           63   72    10           list  Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;
           64   72    11           size  I
           65   71    12              i  I
           67   69    13              q  Ljavax/lang/model/type/TypeMirror;
           68   69    14             ti  Lio/vertx/codegen/type/TypeInfo;
           81   85     3    enclosedElt  Ljavax/lang/model/element/Element;
           88  110     3     objectType  Ljavax/lang/model/type/TypeMirror;
           99  109     4          meths  Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;
          102  103     6              e  Ljava/lang/RuntimeException;
          104  109     6          first  Lio/vertx/codegen/MethodInfo;
          106  108     7         method  Lio/vertx/codegen/MethodInfo;
      Exception table:
        from    to  target  type
          32    33      34  Class java.lang.IllegalArgumentException
          38    48      49  Class java.lang.Exception
          99   100     101  Class java.lang.RuntimeException
    MethodParameters:
      Name  Flags
      elem  

  private static boolean isGenIgnore(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Element elt
         0: .line 801
            aload 0 /* elt */
            ldc Lio/vertx/codegen/annotations/GenIgnore;
            invokeinterface javax.lang.model.element.Element.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // javax.lang.model.element.Element elt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   elt  Ljavax/lang/model/element/Element;
    MethodParameters:
      Name  Flags
      elt   

  private io.vertx.codegen.type.TypeInfo extractArg(java.lang.String, javax.lang.model.type.DeclaredType);
    descriptor: (Ljava/lang/String;Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // java.lang.String subType
        start local 2 // javax.lang.model.type.DeclaredType declaredType
         0: .line 805
            aload 0 /* this */
            aload 1 /* subType */
            aload 2 /* declaredType */
            invokevirtual io.vertx.codegen.ClassModel.extractArgs:(Ljava/lang/String;Ljavax/lang/model/type/DeclaredType;)[Lio/vertx/codegen/type/TypeInfo;
            astore 3 /* typeInfos */
        start local 3 // io.vertx.codegen.type.TypeInfo[] typeInfos
         1: .line 806
            aload 3 /* typeInfos */
            ifnull 2
            aload 3 /* typeInfos */
            arraylength
            ifle 2
            aload 3 /* typeInfos */
            iconst_0
            aaload
            goto 3
      StackMap locals: io.vertx.codegen.type.TypeInfo[]
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: io.vertx.codegen.type.TypeInfo
         3: areturn
        end local 3 // io.vertx.codegen.type.TypeInfo[] typeInfos
        end local 2 // javax.lang.model.type.DeclaredType declaredType
        end local 1 // java.lang.String subType
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lio/vertx/codegen/ClassModel;
            0    4     1       subType  Ljava/lang/String;
            0    4     2  declaredType  Ljavax/lang/model/type/DeclaredType;
            1    4     3     typeInfos  [Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
              Name  Flags
      subType       
      declaredType  

  private io.vertx.codegen.type.TypeInfo[] extractArgs(java.lang.String, javax.lang.model.type.DeclaredType);
    descriptor: (Ljava/lang/String;Ljavax/lang/model/type/DeclaredType;)[Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // java.lang.String subType
        start local 2 // javax.lang.model.type.DeclaredType declaredType
         0: .line 810
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1 /* subType */
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 3 /* parameterizedElt */
        start local 3 // javax.lang.model.element.TypeElement parameterizedElt
         1: .line 811
            aload 3 /* parameterizedElt */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 4 /* parameterizedType */
        start local 4 // javax.lang.model.type.TypeMirror parameterizedType
         2: .line 812
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 4 /* parameterizedType */
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            astore 5 /* rawType */
        start local 5 // javax.lang.model.type.TypeMirror rawType
         3: .line 813
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 2 /* declaredType */
            aload 5 /* rawType */
            invokeinterface javax.lang.model.util.Types.isSubtype:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 18
         4: .line 814
            aload 3 /* parameterizedElt */
            invokeinterface javax.lang.model.element.TypeElement.getTypeParameters:()Ljava/util/List;
            astore 6 /* typeParameters */
        start local 6 // java.util.List typeParameters
         5: .line 815
            aload 6 /* typeParameters */
            invokeinterface java.util.List.size:()I
            anewarray io.vertx.codegen.type.TypeInfo
            astore 7 /* typeInfos */
        start local 7 // io.vertx.codegen.type.TypeInfo[] typeInfos
         6: .line 816
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         7: goto 16
         8: .line 817
      StackMap locals: io.vertx.codegen.ClassModel java.lang.String javax.lang.model.type.DeclaredType javax.lang.model.element.TypeElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror java.util.List io.vertx.codegen.type.TypeInfo[] int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 2 /* declaredType */
            aload 6 /* typeParameters */
            iload 8 /* i */
            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 9 /* resolved */
        start local 9 // javax.lang.model.type.TypeMirror resolved
         9: .line 818
            aload 9 /* resolved */
            ifnull 14
            aload 9 /* 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 14
        10: .line 819
            aload 9 /* resolved */
            checkcast javax.lang.model.type.DeclaredType
            astore 10 /* dt */
        start local 10 // javax.lang.model.type.DeclaredType dt
        11: .line 820
            aload 10 /* dt */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 11 /* a */
        start local 11 // javax.lang.model.element.TypeElement a
        12: .line 821
            aload 11 /* 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
            ifeq 14
        13: .line 822
            aconst_null
            areturn
        end local 11 // javax.lang.model.element.TypeElement a
        end local 10 // javax.lang.model.type.DeclaredType dt
        14: .line 825
      StackMap locals: javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 7 /* typeInfos */
            iload 8 /* i */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 9 /* resolved */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            aastore
        end local 9 // javax.lang.model.type.TypeMirror resolved
        15: .line 816
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 8 /* i */
            aload 6 /* typeParameters */
            invokeinterface java.util.List.size:()I
            if_icmplt 8
        end local 8 // int i
        17: .line 827
            aload 7 /* typeInfos */
            areturn
        end local 7 // io.vertx.codegen.type.TypeInfo[] typeInfos
        end local 6 // java.util.List typeParameters
        18: .line 829
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // javax.lang.model.type.TypeMirror rawType
        end local 4 // javax.lang.model.type.TypeMirror parameterizedType
        end local 3 // javax.lang.model.element.TypeElement parameterizedElt
        end local 2 // javax.lang.model.type.DeclaredType declaredType
        end local 1 // java.lang.String subType
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Lio/vertx/codegen/ClassModel;
            0   19     1            subType  Ljava/lang/String;
            0   19     2       declaredType  Ljavax/lang/model/type/DeclaredType;
            1   19     3   parameterizedElt  Ljavax/lang/model/element/TypeElement;
            2   19     4  parameterizedType  Ljavax/lang/model/type/TypeMirror;
            3   19     5            rawType  Ljavax/lang/model/type/TypeMirror;
            5   18     6     typeParameters  Ljava/util/List<+Ljavax/lang/model/element/TypeParameterElement;>;
            6   18     7          typeInfos  [Lio/vertx/codegen/type/TypeInfo;
            7   17     8                  i  I
            9   15     9           resolved  Ljavax/lang/model/type/TypeMirror;
           11   14    10                 dt  Ljavax/lang/model/type/DeclaredType;
           12   14    11                  a  Ljavax/lang/model/element/TypeElement;
    MethodParameters:
              Name  Flags
      subType       
      declaredType  

  private io.vertx.codegen.ConstantInfo fieldMethod(javax.lang.model.element.VariableElement, boolean);
    descriptor: (Ljavax/lang/model/element/VariableElement;Z)Lio/vertx/codegen/ConstantInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.VariableElement modelField
        start local 2 // boolean allowAnyJavaType
         0: .line 833
            aload 1 /* modelField */
            invokeinterface javax.lang.model.element.VariableElement.getModifiers:()Ljava/util/Set;
            astore 3 /* mods */
        start local 3 // java.util.Set mods
         1: .line 834
            aload 3 /* mods */
            getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 835
            aconst_null
            areturn
         3: .line 837
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 1 /* modelField */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            astore 4 /* type */
        start local 4 // io.vertx.codegen.type.TypeInfo type
         4: .line 838
            aload 0 /* this */
            aload 1 /* modelField */
            aload 4 /* type */
            aload 1 /* modelField */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.checkConstantType:(Ljavax/lang/model/element/VariableElement;Lio/vertx/codegen/type/TypeInfo;Ljavax/lang/model/type/TypeMirror;Z)V
         5: .line 839
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.docFactory:Lio/vertx/codegen/doc/Doc$Factory;
            aload 1 /* modelField */
            invokevirtual io.vertx.codegen.doc.Doc$Factory.createDoc:(Ljavax/lang/model/element/Element;)Lio/vertx/codegen/doc/Doc;
            astore 5 /* doc */
        start local 5 // io.vertx.codegen.doc.Doc doc
         6: .line 840
            new io.vertx.codegen.ConstantInfo
            dup
            aload 5 /* doc */
            aload 1 /* modelField */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aload 4 /* type */
            invokespecial io.vertx.codegen.ConstantInfo.<init>:(Lio/vertx/codegen/doc/Doc;Ljava/lang/String;Lio/vertx/codegen/type/TypeInfo;)V
            areturn
        end local 5 // io.vertx.codegen.doc.Doc doc
        end local 4 // io.vertx.codegen.type.TypeInfo type
        end local 3 // java.util.Set mods
        end local 2 // boolean allowAnyJavaType
        end local 1 // javax.lang.model.element.VariableElement modelField
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lio/vertx/codegen/ClassModel;
            0    7     1        modelField  Ljavax/lang/model/element/VariableElement;
            0    7     2  allowAnyJavaType  Z
            1    7     3              mods  Ljava/util/Set<Ljavax/lang/model/element/Modifier;>;
            4    7     4              type  Lio/vertx/codegen/type/TypeInfo;
            6    7     5               doc  Lio/vertx/codegen/doc/Doc;
    MethodParameters:
                  Name  Flags
      modelField        
      allowAnyJavaType  

  private io.vertx.codegen.MethodInfo createMethod(javax.lang.model.element.ExecutableElement, boolean);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;Z)Lio/vertx/codegen/MethodInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=17, locals=34, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.ExecutableElement modelMethod
        start local 2 // boolean allowAnyJavaType
         0: .line 844
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
            astore 3 /* mods */
        start local 3 // java.util.Set mods
         1: .line 845
            aload 3 /* mods */
            getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 846
            aconst_null
            areturn
         3: .line 849
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 4 /* declaringElt */
        start local 4 // javax.lang.model.element.TypeElement declaringElt
         4: .line 850
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 4 /* declaringElt */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            astore 5 /* declaringType */
        start local 5 // io.vertx.codegen.type.TypeInfo declaringType
         5: .line 852
            aload 4 /* declaringElt */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.equals:(Ljava/lang/Object;)Z
            ifne 7
            aload 5 /* declaringType */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.API:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 7
            aload 5 /* declaringType */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.HANDLER:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 7
         6: .line 853
            aconst_null
            areturn
         7: .line 856
      StackMap locals: javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 4 /* declaringElt */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            astore 6 /* type */
        start local 6 // io.vertx.codegen.type.ClassTypeInfo type
         8: .line 858
            aload 3 /* mods */
            getstatic javax.lang.model.element.Modifier.DEFAULT:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            istore 7 /* isDefault */
        start local 7 // boolean isDefault
         9: .line 859
            aload 3 /* mods */
            getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            istore 8 /* isStatic */
        start local 8 // boolean isStatic
        10: .line 860
            iload 8 /* isStatic */
            ifeq 12
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.concrete:Z
            ifne 12
        11: .line 861
            new io.vertx.codegen.GenException
            dup
            aload 1 /* modelMethod */
            ldc "Abstract interface cannot declare static methods"
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        12: .line 864
      StackMap locals: io.vertx.codegen.type.ClassTypeInfo int int
      StackMap stack:
            aload 1 /* modelMethod */
            ldc Lio/vertx/codegen/annotations/CacheReturn;
            invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 9 /* isCacheReturn */
        start local 9 // boolean isCacheReturn
        15: .line 865
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* typeParams */
        start local 10 // java.util.ArrayList typeParams
        16: .line 866
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getTypeParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 24
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList top java.util.Iterator
      StackMap stack:
        17: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.TypeParameterElement
            astore 11 /* typeParam */
        start local 11 // javax.lang.model.element.TypeParameterElement typeParam
        18: .line 867
            aload 11 /* typeParam */
            invokeinterface javax.lang.model.element.TypeParameterElement.getBounds:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 22
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList javax.lang.model.element.TypeParameterElement java.util.Iterator top java.util.Iterator
      StackMap stack:
        19: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 13 /* bound */
        start local 13 // javax.lang.model.type.TypeMirror bound
        20: .line 868
            aload 0 /* this */
            aload 13 /* bound */
            invokevirtual io.vertx.codegen.ClassModel.isObjectBound:(Ljavax/lang/model/type/TypeMirror;)Z
            ifne 22
        21: .line 869
            new io.vertx.codegen.GenException
            dup
            aload 1 /* modelMethod */
            new java.lang.StringBuilder
            dup
            ldc "Type parameter bound not supported "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* bound */
            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
        end local 13 // javax.lang.model.type.TypeMirror bound
        22: .line 867
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        23: .line 872
            aload 10 /* typeParams */
            aload 11 /* typeParam */
            invokestatic io.vertx.codegen.TypeParamInfo.create:(Ljavax/lang/model/element/TypeParameterElement;)Lio/vertx/codegen/TypeParamInfo;
            checkcast io.vertx.codegen.TypeParamInfo$Method
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // javax.lang.model.element.TypeParameterElement typeParam
        24: .line 866
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        25: .line 876
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* modelMethods */
        start local 11 // java.util.List modelMethods
        26: .line 877
            aload 11 /* modelMethods */
            aload 1 /* modelMethod */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 880
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 12 /* ownerTypes */
        start local 12 // java.util.Set ownerTypes
        28: .line 881
            aload 12 /* ownerTypes */
            aload 6 /* type */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        29: .line 883
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            iconst_1
            iconst_1
            invokestatic io.vertx.codegen.Helper.resolveAncestorTypes:(Ljavax/lang/model/element/TypeElement;ZZ)Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 13 /* ancestors */
        start local 13 // java.util.ArrayList ancestors
        30: .line 887
            aload 13 /* ancestors */
            aload 0 /* this */
            invokedynamic compare(Lio/vertx/codegen/ClassModel;)Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  io/vertx/codegen/ClassModel.lambda$20(Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/type/DeclaredType;)I (7)
                  (Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/type/DeclaredType;)I
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        31: .line 898
            aload 13 /* ancestors */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 15
            goto 40
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList top java.util.Iterator
      StackMap stack:
        32: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.DeclaredType
            astore 14 /* ancestorType */
        start local 14 // javax.lang.model.type.DeclaredType ancestorType
        33: .line 899
            aload 14 /* ancestorType */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 16 /* ancestorElt */
        start local 16 // javax.lang.model.element.TypeElement ancestorElt
        34: .line 900
            aload 16 /* ancestorElt */
            ldc Lio/vertx/codegen/annotations/VertxGen;
            invokeinterface javax.lang.model.element.TypeElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 40
        35: .line 901
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 16 /* ancestorElt */
            invokeinterface javax.lang.model.util.Elements.getAllMembers:(Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
        36: .line 902
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        37: .line 903
            getstatic io.vertx.codegen.Helper.FILTER_METHOD:Ljava/util/function/Function;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        38: .line 904
            aload 0 /* this */
            aload 1 /* modelMethod */
            invokedynamic test(Lio/vertx/codegen/ClassModel;Ljavax/lang/model/element/ExecutableElement;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$21(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/element/ExecutableElement;)Z (7)
                  (Ljavax/lang/model/element/ExecutableElement;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        39: .line 905
            aload 0 /* this */
            aload 11 /* modelMethods */
            aload 12 /* ownerTypes */
            aload 16 /* ancestorElt */
            invokedynamic accept(Lio/vertx/codegen/ClassModel;Ljava/util/List;Ljava/util/Set;Ljavax/lang/model/element/TypeElement;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/codegen/ClassModel.lambda$22(Ljava/util/List;Ljava/util/Set;Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/ExecutableElement;)V (7)
                  (Ljavax/lang/model/element/ExecutableElement;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 16 // javax.lang.model.element.TypeElement ancestorElt
        end local 14 // javax.lang.model.type.DeclaredType ancestorType
        40: .line 898
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        41: .line 913
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 14 /* paramDescs */
        start local 14 // java.util.Map paramDescs
        42: .line 914
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.util.Elements.getDocComment:(Ljavax/lang/model/element/Element;)Ljava/lang/String;
            astore 15 /* comment */
        start local 15 // java.lang.String comment
        43: .line 915
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.docFactory:Lio/vertx/codegen/doc/Doc$Factory;
            aload 1 /* modelMethod */
            invokevirtual io.vertx.codegen.doc.Doc$Factory.createDoc:(Ljavax/lang/model/element/Element;)Lio/vertx/codegen/doc/Doc;
            astore 16 /* doc */
        start local 16 // io.vertx.codegen.doc.Doc doc
        44: .line 916
            aconst_null
            astore 17 /* returnDesc */
        start local 17 // io.vertx.codegen.doc.Text returnDesc
        45: .line 917
            aconst_null
            astore 18 /* methodDeprecatedDesc */
        start local 18 // io.vertx.codegen.doc.Text methodDeprecatedDesc
        46: .line 918
            aload 16 /* doc */
            ifnull 69
        47: .line 919
            aload 16 /* doc */
        48: .line 920
            invokevirtual io.vertx.codegen.doc.Doc.getBlockTags:()Ljava/util/List;
        49: .line 921
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        50: .line 922
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$23(Lio/vertx/codegen/doc/Tag;)Z (6)
                  (Lio/vertx/codegen/doc/Tag;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        51: .line 923
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/codegen/doc/Tag$Param.<init>(Lio/vertx/codegen/doc/Tag;)V (8)
                  (Lio/vertx/codegen/doc/Tag;)Lio/vertx/codegen/doc/Tag$Param;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        52: .line 924
            aload 14 /* paramDescs */
            invokedynamic accept(Ljava/util/Map;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/codegen/ClassModel.lambda$25(Ljava/util/Map;Lio/vertx/codegen/doc/Tag$Param;)V (6)
                  (Lio/vertx/codegen/doc/Tag$Param;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        53: .line 925
            aload 16 /* doc */
        54: .line 926
            invokevirtual io.vertx.codegen.doc.Doc.getBlockTags:()Ljava/util/List;
        55: .line 927
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        56: .line 928
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$26(Lio/vertx/codegen/doc/Tag;)Z (6)
                  (Lio/vertx/codegen/doc/Tag;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        57: .line 929
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
        58: .line 925
            astore 19 /* returnTag */
        start local 19 // java.util.Optional returnTag
        59: .line 930
            aload 19 /* returnTag */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 61
        60: .line 931
            new io.vertx.codegen.doc.Text
            dup
            aload 19 /* returnTag */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast io.vertx.codegen.doc.Tag
            invokevirtual io.vertx.codegen.doc.Tag.getValue:()Ljava/lang/String;
            invokestatic io.vertx.codegen.Helper.normalizeWhitespaces:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial io.vertx.codegen.doc.Text.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokestatic io.vertx.codegen.doc.Token.tagMapper:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;)Ljava/util/function/Function;
            invokevirtual io.vertx.codegen.doc.Text.map:(Ljava/util/function/Function;)Lio/vertx/codegen/doc/Text;
            astore 17 /* returnDesc */
        61: .line 933
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.Optional
      StackMap stack:
            aload 16 /* doc */
        62: .line 934
            invokevirtual io.vertx.codegen.doc.Doc.getBlockTags:()Ljava/util/List;
        63: .line 935
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        64: .line 936
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/codegen/ClassModel.lambda$27(Lio/vertx/codegen/doc/Tag;)Z (6)
                  (Lio/vertx/codegen/doc/Tag;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        65: .line 937
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
        66: .line 933
            astore 20 /* methodDeprecatedTag */
        start local 20 // java.util.Optional methodDeprecatedTag
        67: .line 938
            aload 20 /* methodDeprecatedTag */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 69
        68: .line 939
            new io.vertx.codegen.doc.Text
            dup
            aload 20 /* methodDeprecatedTag */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast io.vertx.codegen.doc.Tag
            invokevirtual io.vertx.codegen.doc.Tag.getValue:()Ljava/lang/String;
            invokestatic io.vertx.codegen.Helper.normalizeWhitespaces:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial io.vertx.codegen.doc.Text.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokestatic io.vertx.codegen.doc.Token.tagMapper:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;)Ljava/util/function/Function;
            invokevirtual io.vertx.codegen.doc.Text.map:(Ljava/util/function/Function;)Lio/vertx/codegen/doc/Text;
            astore 18 /* methodDeprecatedDesc */
        end local 20 // java.util.Optional methodDeprecatedTag
        end local 19 // java.util.Optional returnTag
        69: .line 944
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 19 /* mParams */
        start local 19 // java.util.List mParams
        70: .line 945
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.DeclaredType
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.util.Types.asMemberOf:(Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/element/Element;)Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.ExecutableType
            astore 20 /* resolvedMethodType */
        start local 20 // javax.lang.model.type.ExecutableType resolvedMethodType
        71: .line 946
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.ExecutableType
            astore 21 /* methodType */
        start local 21 // javax.lang.model.type.ExecutableType methodType
        72: .line 947
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            astore 22 /* params */
        start local 22 // java.util.List params
        73: .line 948
            iconst_0
            istore 23 /* i */
        start local 23 // int i
        74: goto 98
        75: .line 949
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.List javax.lang.model.type.ExecutableType javax.lang.model.type.ExecutableType java.util.List int
      StackMap stack:
            aload 22 /* params */
            iload 23 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 24 /* param */
        start local 24 // javax.lang.model.element.VariableElement param
        76: .line 950
            aload 20 /* resolvedMethodType */
            invokeinterface javax.lang.model.type.ExecutableType.getParameterTypes:()Ljava/util/List;
            iload 23 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 25 /* typeMirror */
        start local 25 // javax.lang.model.type.TypeMirror typeMirror
        77: .line 952
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.env:Ljavax/annotation/processing/ProcessingEnvironment;
            aload 11 /* modelMethods */
            iconst_0
            anewarray javax.lang.model.element.ExecutableElement
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement[]
            iload 23 /* i */
            invokestatic io.vertx.codegen.type.TypeUse.createParamTypeUse:(Ljavax/annotation/processing/ProcessingEnvironment;[Ljavax/lang/model/element/ExecutableElement;I)Lio/vertx/codegen/type/TypeUse;
            astore 27 /* typeUse */
        start local 27 // io.vertx.codegen.type.TypeUse typeUse
        78: .line 954
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 27 /* typeUse */
            aload 25 /* typeMirror */
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Lio/vertx/codegen/type/TypeUse;Ljavax/lang/model/type/TypeMirror;)Lio/vertx/codegen/type/TypeInfo;
            astore 26 /* typeInfo */
        start local 26 // io.vertx.codegen.type.TypeInfo typeInfo
        79: .line 955
            goto 84
        end local 26 // io.vertx.codegen.type.TypeInfo typeInfo
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.List javax.lang.model.type.ExecutableType javax.lang.model.type.ExecutableType java.util.List int javax.lang.model.element.VariableElement javax.lang.model.type.TypeMirror top io.vertx.codegen.type.TypeUse
      StackMap stack: java.lang.Exception
        80: astore 28 /* e */
        start local 28 // java.lang.Exception e
        81: .line 956
            new io.vertx.codegen.GenException
            dup
            aload 24 /* param */
            aload 28 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            astore 29 /* ex */
        start local 29 // io.vertx.codegen.GenException ex
        82: .line 957
            aload 29 /* ex */
            aload 28 /* e */
            invokevirtual java.lang.Exception.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokevirtual io.vertx.codegen.GenException.setStackTrace:([Ljava/lang/StackTraceElement;)V
        83: .line 958
            aload 29 /* ex */
            athrow
        end local 29 // io.vertx.codegen.GenException ex
        end local 28 // java.lang.Exception e
        start local 26 // io.vertx.codegen.type.TypeInfo typeInfo
        84: .line 961
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.List javax.lang.model.type.ExecutableType javax.lang.model.type.ExecutableType java.util.List int javax.lang.model.element.VariableElement javax.lang.model.type.TypeMirror io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.TypeUse
      StackMap stack:
            aload 12 /* ownerTypes */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpne 86
        85: .line 962
            aload 0 /* this */
            aload 1 /* modelMethod */
            aload 25 /* typeMirror */
            aload 26 /* typeInfo */
            iload 23 /* i */
            aload 22 /* params */
            invokeinterface java.util.List.size:()I
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.checkParamType:(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/TypeMirror;Lio/vertx/codegen/type/TypeInfo;IIZ)V
        86: .line 964
      StackMap locals:
      StackMap stack:
            aload 24 /* param */
            invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 28 /* name */
        start local 28 // java.lang.String name
        87: .line 965
            aload 14 /* paramDescs */
            aload 28 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 29 /* desc */
        start local 29 // java.lang.String desc
        88: .line 966
            aload 29 /* desc */
            ifnull 89
            new io.vertx.codegen.doc.Text
            dup
            aload 29 /* desc */
            invokespecial io.vertx.codegen.doc.Text.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokestatic io.vertx.codegen.doc.Token.tagMapper:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;)Ljava/util/function/Function;
            invokevirtual io.vertx.codegen.doc.Text.map:(Ljava/util/function/Function;)Lio/vertx/codegen/doc/Text;
            goto 90
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
        89: aconst_null
      StackMap locals:
      StackMap stack: io.vertx.codegen.doc.Text
        90: astore 30 /* text */
        start local 30 // io.vertx.codegen.doc.Text text
        91: .line 969
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 27 /* typeUse */
            aload 21 /* methodType */
            invokeinterface javax.lang.model.type.ExecutableType.getParameterTypes:()Ljava/util/List;
            iload 23 /* 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 31 /* unresolvedTypeInfo */
        start local 31 // io.vertx.codegen.type.TypeInfo unresolvedTypeInfo
        92: .line 970
            goto 95
        end local 31 // io.vertx.codegen.type.TypeInfo unresolvedTypeInfo
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.List javax.lang.model.type.ExecutableType javax.lang.model.type.ExecutableType java.util.List int javax.lang.model.element.VariableElement javax.lang.model.type.TypeMirror io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.TypeUse java.lang.String java.lang.String io.vertx.codegen.doc.Text
      StackMap stack: java.lang.Exception
        93: astore 32 /* e */
        start local 32 // java.lang.Exception e
        94: .line 971
            new io.vertx.codegen.GenException
            dup
            aload 24 /* param */
            aload 32 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        end local 32 // java.lang.Exception e
        start local 31 // io.vertx.codegen.type.TypeInfo unresolvedTypeInfo
        95: .line 973
      StackMap locals: io.vertx.codegen.type.TypeInfo
      StackMap stack:
            new io.vertx.codegen.ParamInfo
            dup
            iload 23 /* i */
            aload 28 /* name */
            aload 30 /* text */
            aload 26 /* typeInfo */
            aload 31 /* unresolvedTypeInfo */
            invokespecial io.vertx.codegen.ParamInfo.<init>:(ILjava/lang/String;Lio/vertx/codegen/doc/Text;Lio/vertx/codegen/type/TypeInfo;Lio/vertx/codegen/type/TypeInfo;)V
            astore 32 /* mParam */
        start local 32 // io.vertx.codegen.ParamInfo mParam
        96: .line 974
            aload 19 /* mParams */
            aload 32 /* mParam */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 32 // io.vertx.codegen.ParamInfo mParam
        end local 31 // io.vertx.codegen.type.TypeInfo unresolvedTypeInfo
        end local 30 // io.vertx.codegen.doc.Text text
        end local 29 // java.lang.String desc
        end local 28 // java.lang.String name
        end local 27 // io.vertx.codegen.type.TypeUse typeUse
        end local 26 // io.vertx.codegen.type.TypeInfo typeInfo
        end local 25 // javax.lang.model.type.TypeMirror typeMirror
        end local 24 // javax.lang.model.element.VariableElement param
        97: .line 948
            iinc 23 /* i */ 1
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.List javax.lang.model.type.ExecutableType javax.lang.model.type.ExecutableType java.util.List int
      StackMap stack:
        98: iload 23 /* i */
            aload 22 /* params */
            invokeinterface java.util.List.size:()I
            if_icmplt 75
        end local 23 // int i
        99: .line 978
            ldc Lio/vertx/codegen/annotations/Fluent;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 4 /* declaringElt */
            aload 1 /* modelMethod */
            invokestatic io.vertx.codegen.Helper.resolveMethodAnnotation:(Ljava/lang/Class;Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/ExecutableElement;)Ljavax/lang/model/element/AnnotationMirror;
            astore 23 /* fluentAnnotation */
        start local 23 // javax.lang.model.element.AnnotationMirror fluentAnnotation
       100: .line 979
            aload 23 /* fluentAnnotation */
            ifnull 101
            iconst_1
            goto 102
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.List javax.lang.model.type.ExecutableType javax.lang.model.type.ExecutableType java.util.List javax.lang.model.element.AnnotationMirror
      StackMap stack:
       101: iconst_0
      StackMap locals:
      StackMap stack: int
       102: istore 24 /* isFluent */
        start local 24 // boolean isFluent
       103: .line 980
            iload 24 /* isFluent */
            ifeq 115
       104: .line 981
            iconst_1
            istore 24 /* isFluent */
       105: .line 982
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 4 /* declaringElt */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 112
       106: .line 983
            new java.lang.StringBuilder
            dup
            ldc "Interface "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not redeclare the @Fluent return type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       107: .line 984
            ldc " of method "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* modelMethod */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " declared by "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* declaringElt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       108: .line 983
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 25 /* msg */
        start local 25 // java.lang.String msg
       109: .line 985
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.messager:Ljavax/annotation/processing/Messager;
            getstatic javax.tools.Diagnostic$Kind.WARNING:Ljavax/tools/Diagnostic$Kind;
            aload 25 /* msg */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            aload 23 /* fluentAnnotation */
            invokeinterface javax.annotation.processing.Messager.printMessage:(Ljavax/tools/Diagnostic$Kind;Ljava/lang/CharSequence;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;)V
       110: .line 986
            getstatic io.vertx.codegen.ClassModel.logger:Ljava/util/logging/Logger;
            aload 25 /* msg */
            invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
        end local 25 // java.lang.String msg
       111: .line 987
            goto 115
       112: .line 988
      StackMap locals: int
      StackMap stack:
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            astore 25 /* fluentType */
        start local 25 // javax.lang.model.type.TypeMirror fluentType
       113: .line 989
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 25 /* fluentType */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifne 115
       114: .line 990
            new io.vertx.codegen.GenException
            dup
            aload 1 /* modelMethod */
            ldc "Methods marked with @Fluent must have a return type that extends the type"
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        end local 25 // javax.lang.model.type.TypeMirror fluentType
       115: .line 996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.env:Ljavax/annotation/processing/ProcessingEnvironment;
            aload 11 /* modelMethods */
            aload 11 /* modelMethods */
            invokeinterface java.util.List.size:()I
            anewarray javax.lang.model.element.ExecutableElement
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement[]
            invokestatic io.vertx.codegen.type.TypeUse.createReturnTypeUse:(Ljavax/annotation/processing/ProcessingEnvironment;[Ljavax/lang/model/element/ExecutableElement;)Lio/vertx/codegen/type/TypeUse;
            astore 25 /* returnTypeUse */
        start local 25 // io.vertx.codegen.type.TypeUse returnTypeUse
       116: .line 999
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 25 /* returnTypeUse */
            aload 20 /* resolvedMethodType */
            invokeinterface javax.lang.model.type.ExecutableType.getReturnType:()Ljavax/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 26 /* returnType */
        start local 26 // io.vertx.codegen.type.TypeInfo returnType
       117: .line 1000
            goto 122
        end local 26 // io.vertx.codegen.type.TypeInfo returnType
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.List javax.lang.model.type.ExecutableType javax.lang.model.type.ExecutableType java.util.List javax.lang.model.element.AnnotationMirror int io.vertx.codegen.type.TypeUse
      StackMap stack: java.lang.Exception
       118: astore 27 /* e */
        start local 27 // java.lang.Exception e
       119: .line 1001
            new io.vertx.codegen.GenException
            dup
            aload 1 /* modelMethod */
            aload 27 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            astore 28 /* genEx */
        start local 28 // io.vertx.codegen.GenException genEx
       120: .line 1002
            aload 28 /* genEx */
            aload 27 /* e */
            invokevirtual io.vertx.codegen.GenException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
       121: .line 1003
            aload 28 /* genEx */
            athrow
        end local 28 // io.vertx.codegen.GenException genEx
        end local 27 // java.lang.Exception e
        start local 26 // io.vertx.codegen.type.TypeInfo returnType
       122: .line 1005
      StackMap locals: io.vertx.codegen.type.TypeInfo
      StackMap stack:
            aload 26 /* returnType */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.collectedTypes:Ljava/util/Set;
            invokevirtual io.vertx.codegen.type.TypeInfo.collectImports:(Ljava/util/Collection;)V
       123: .line 1006
            iload 9 /* isCacheReturn */
            ifeq 125
            aload 26 /* returnType */
            invokevirtual io.vertx.codegen.type.TypeInfo.isVoid:()Z
            ifeq 125
       124: .line 1007
            new io.vertx.codegen.GenException
            dup
            aload 1 /* modelMethod */
            ldc "void method can't be marked with @CacheReturn"
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
       125: .line 1011
      StackMap locals:
      StackMap stack:
            iload 24 /* isFluent */
            ifne 129
       126: .line 1013
            aload 13 /* ancestors */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 131
       127: .line 1014
            aload 0 /* this */
            aload 1 /* modelMethod */
            aload 26 /* returnType */
            aload 20 /* resolvedMethodType */
            invokeinterface javax.lang.model.type.ExecutableType.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            iload 2 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.checkReturnType:(Ljavax/lang/model/element/ExecutableElement;Lio/vertx/codegen/type/TypeInfo;Ljavax/lang/model/type/TypeMirror;Z)V
       128: .line 1016
            goto 131
      StackMap locals:
      StackMap stack:
       129: aload 26 /* returnType */
            invokevirtual io.vertx.codegen.type.TypeInfo.isNullable:()Z
            ifeq 131
       130: .line 1017
            new io.vertx.codegen.GenException
            dup
            aload 1 /* modelMethod */
            ldc "Fluent return type cannot be nullable"
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
       131: .line 1020
      StackMap locals:
      StackMap stack:
            aload 1 /* modelMethod */
            ldc Ljava/lang/Deprecated;
            invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnonnull 132
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.deprecatedDesc:Lio/vertx/codegen/doc/Text;
            ifnonnull 132
            iconst_0
            goto 133
      StackMap locals:
      StackMap stack:
       132: iconst_1
      StackMap locals:
      StackMap stack: int
       133: istore 27 /* methodDeprecated */
        start local 27 // boolean methodDeprecated
       134: .line 1021
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 28 /* methodName */
        start local 28 // java.lang.String methodName
       135: .line 1023
            aload 0 /* this */
       136: .line 1024
            aload 12 /* ownerTypes */
       137: .line 1025
            aload 28 /* methodName */
       138: .line 1026
            aload 15 /* comment */
       139: .line 1027
            aload 16 /* doc */
       140: .line 1028
            aload 26 /* returnType */
       141: .line 1029
            aload 17 /* returnDesc */
       142: .line 1030
            iload 24 /* isFluent */
       143: .line 1031
            iload 9 /* isCacheReturn */
       144: .line 1032
            aload 19 /* mParams */
       145: .line 1033
            aload 1 /* modelMethod */
       146: .line 1034
            iload 8 /* isStatic */
       147: .line 1035
            iload 7 /* isDefault */
       148: .line 1036
            aload 10 /* typeParams */
       149: .line 1037
            aload 4 /* declaringElt */
       150: .line 1038
            iload 27 /* methodDeprecated */
       151: .line 1039
            aload 18 /* methodDeprecatedDesc */
       152: .line 1023
            invokevirtual io.vertx.codegen.ClassModel.createMethodInfo:(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;Lio/vertx/codegen/doc/Doc;Lio/vertx/codegen/type/TypeInfo;Lio/vertx/codegen/doc/Text;ZZLjava/util/List;Ljavax/lang/model/element/ExecutableElement;ZZLjava/util/ArrayList;Ljavax/lang/model/element/TypeElement;ZLio/vertx/codegen/doc/Text;)Lio/vertx/codegen/MethodInfo;
            astore 29 /* methodInfo */
        start local 29 // io.vertx.codegen.MethodInfo methodInfo
       153: .line 1044
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methods:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 31
            goto 161
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.List javax.lang.model.type.ExecutableType javax.lang.model.type.ExecutableType java.util.List javax.lang.model.element.AnnotationMirror int io.vertx.codegen.type.TypeUse io.vertx.codegen.type.TypeInfo int java.lang.String io.vertx.codegen.MethodInfo top java.util.Iterator
      StackMap stack:
       154: aload 31
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 30 /* otherMethod */
        start local 30 // java.util.Map$Entry otherMethod
       155: .line 1045
            aload 30 /* otherMethod */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.codegen.MethodInfo
            invokevirtual io.vertx.codegen.MethodInfo.getName:()Ljava/lang/String;
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 161
       156: .line 1046
            aload 30 /* otherMethod */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            invokeinterface javax.lang.model.element.ExecutableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.ExecutableType
            astore 32 /* t1 */
        start local 32 // javax.lang.model.type.ExecutableType t1
       157: .line 1047
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.ExecutableType
            astore 33 /* t2 */
        start local 33 // javax.lang.model.type.ExecutableType t2
       158: .line 1048
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 32 /* t1 */
            aload 33 /* t2 */
            invokeinterface javax.lang.model.util.Types.isSubsignature:(Ljavax/lang/model/type/ExecutableType;Ljavax/lang/model/type/ExecutableType;)Z
            ifeq 161
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 33 /* t2 */
            aload 32 /* t1 */
            invokeinterface javax.lang.model.util.Types.isSubsignature:(Ljavax/lang/model/type/ExecutableType;Ljavax/lang/model/type/ExecutableType;)Z
            ifeq 161
       159: .line 1049
            aload 30 /* otherMethod */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.codegen.MethodInfo
            invokevirtual io.vertx.codegen.MethodInfo.getOwnerTypes:()Ljava/util/Set;
            aload 29 /* methodInfo */
            invokevirtual io.vertx.codegen.MethodInfo.getOwnerTypes:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
       160: .line 1050
            aconst_null
            areturn
        end local 33 // javax.lang.model.type.ExecutableType t2
        end local 32 // javax.lang.model.type.ExecutableType t1
        end local 30 // java.util.Map$Entry otherMethod
       161: .line 1044
      StackMap locals:
      StackMap stack:
            aload 31
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 154
       162: .line 1056
            iload 2 /* allowAnyJavaType */
            ifne 170
       163: .line 1057
            aload 0 /* this */
            aload 29 /* methodInfo */
            invokevirtual io.vertx.codegen.ClassModel.checkMethod:(Lio/vertx/codegen/MethodInfo;)V
       164: .line 1058
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methodMap:Ljava/util/Map;
            aload 29 /* methodInfo */
            invokevirtual io.vertx.codegen.MethodInfo.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 30 /* methodsByName */
        start local 30 // java.util.List methodsByName
       165: .line 1059
            aload 30 /* methodsByName */
            ifnonnull 169
       166: .line 1060
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 30 /* methodsByName */
       167: .line 1061
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methodMap:Ljava/util/Map;
            aload 29 /* methodInfo */
            invokevirtual io.vertx.codegen.MethodInfo.getName:()Ljava/lang/String;
            aload 30 /* methodsByName */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       168: .line 1062
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methodAnnotationsMap:Ljava/util/Map;
            aload 29 /* methodInfo */
            invokevirtual io.vertx.codegen.MethodInfo.getName:()Ljava/lang/String;
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getAnnotationMirrors:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.annotationValueInfoFactory:Lio/vertx/codegen/type/AnnotationValueInfoFactory;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Lio/vertx/codegen/type/AnnotationValueInfoFactory;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/codegen/type/AnnotationValueInfoFactory.processAnnotation(Ljavax/lang/model/element/AnnotationMirror;)Lio/vertx/codegen/type/AnnotationValueInfo; (5)
                  (Ljavax/lang/model/element/AnnotationMirror;)Lio/vertx/codegen/type/AnnotationValueInfo;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       169: .line 1064
      StackMap locals: io.vertx.codegen.ClassModel javax.lang.model.element.ExecutableElement int java.util.Set javax.lang.model.element.TypeElement io.vertx.codegen.type.TypeInfo io.vertx.codegen.type.ClassTypeInfo int int int java.util.ArrayList java.util.List java.util.Set java.util.ArrayList java.util.Map java.lang.String io.vertx.codegen.doc.Doc io.vertx.codegen.doc.Text io.vertx.codegen.doc.Text java.util.List javax.lang.model.type.ExecutableType javax.lang.model.type.ExecutableType java.util.List javax.lang.model.element.AnnotationMirror int io.vertx.codegen.type.TypeUse io.vertx.codegen.type.TypeInfo int java.lang.String io.vertx.codegen.MethodInfo java.util.List
      StackMap stack:
            aload 30 /* methodsByName */
            aload 29 /* methodInfo */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 30 // java.util.List methodsByName
       170: .line 1068
      StackMap locals:
      StackMap stack:
            aload 4 /* declaringElt */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.element.TypeElement.equals:(Ljava/lang/Object;)Z
            ifne 175
            aload 5 /* declaringType */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.API:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 175
       171: .line 1069
            aload 5 /* declaringType */
            invokevirtual io.vertx.codegen.type.TypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            checkcast io.vertx.codegen.type.ApiTypeInfo
            astore 30 /* declaringApiType */
        start local 30 // io.vertx.codegen.type.ApiTypeInfo declaringApiType
       172: .line 1070
            aload 30 /* declaringApiType */
            invokevirtual io.vertx.codegen.type.ApiTypeInfo.isConcrete:()Z
            ifeq 175
       173: .line 1071
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 20 /* resolvedMethodType */
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 175
       174: .line 1072
            aconst_null
            areturn
        end local 30 // io.vertx.codegen.type.ApiTypeInfo declaringApiType
       175: .line 1077
      StackMap locals:
      StackMap stack:
            aload 29 /* methodInfo */
            areturn
        end local 29 // io.vertx.codegen.MethodInfo methodInfo
        end local 28 // java.lang.String methodName
        end local 27 // boolean methodDeprecated
        end local 26 // io.vertx.codegen.type.TypeInfo returnType
        end local 25 // io.vertx.codegen.type.TypeUse returnTypeUse
        end local 24 // boolean isFluent
        end local 23 // javax.lang.model.element.AnnotationMirror fluentAnnotation
        end local 22 // java.util.List params
        end local 21 // javax.lang.model.type.ExecutableType methodType
        end local 20 // javax.lang.model.type.ExecutableType resolvedMethodType
        end local 19 // java.util.List mParams
        end local 18 // io.vertx.codegen.doc.Text methodDeprecatedDesc
        end local 17 // io.vertx.codegen.doc.Text returnDesc
        end local 16 // io.vertx.codegen.doc.Doc doc
        end local 15 // java.lang.String comment
        end local 14 // java.util.Map paramDescs
        end local 13 // java.util.ArrayList ancestors
        end local 12 // java.util.Set ownerTypes
        end local 11 // java.util.List modelMethods
        end local 10 // java.util.ArrayList typeParams
        end local 9 // boolean isCacheReturn
        end local 8 // boolean isStatic
        end local 7 // boolean isDefault
        end local 6 // io.vertx.codegen.type.ClassTypeInfo type
        end local 5 // io.vertx.codegen.type.TypeInfo declaringType
        end local 4 // javax.lang.model.element.TypeElement declaringElt
        end local 3 // java.util.Set mods
        end local 2 // boolean allowAnyJavaType
        end local 1 // javax.lang.model.element.ExecutableElement modelMethod
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0  176     0                  this  Lio/vertx/codegen/ClassModel;
            0  176     1           modelMethod  Ljavax/lang/model/element/ExecutableElement;
            0  176     2      allowAnyJavaType  Z
            1  176     3                  mods  Ljava/util/Set<Ljavax/lang/model/element/Modifier;>;
            4  176     4          declaringElt  Ljavax/lang/model/element/TypeElement;
            5  176     5         declaringType  Lio/vertx/codegen/type/TypeInfo;
            8  176     6                  type  Lio/vertx/codegen/type/ClassTypeInfo;
            9  176     7             isDefault  Z
           10  176     8              isStatic  Z
           15  176     9         isCacheReturn  Z
           16  176    10            typeParams  Ljava/util/ArrayList<Lio/vertx/codegen/TypeParamInfo$Method;>;
           18   24    11             typeParam  Ljavax/lang/model/element/TypeParameterElement;
           20   22    13                 bound  Ljavax/lang/model/type/TypeMirror;
           26  176    11          modelMethods  Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
           28  176    12            ownerTypes  Ljava/util/Set<Lio/vertx/codegen/type/ClassTypeInfo;>;
           30  176    13             ancestors  Ljava/util/ArrayList<Ljavax/lang/model/type/DeclaredType;>;
           33   40    14          ancestorType  Ljavax/lang/model/type/DeclaredType;
           34   40    16           ancestorElt  Ljavax/lang/model/element/TypeElement;
           42  176    14            paramDescs  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           43  176    15               comment  Ljava/lang/String;
           44  176    16                   doc  Lio/vertx/codegen/doc/Doc;
           45  176    17            returnDesc  Lio/vertx/codegen/doc/Text;
           46  176    18  methodDeprecatedDesc  Lio/vertx/codegen/doc/Text;
           59   69    19             returnTag  Ljava/util/Optional<Lio/vertx/codegen/doc/Tag;>;
           67   69    20   methodDeprecatedTag  Ljava/util/Optional<Lio/vertx/codegen/doc/Tag;>;
           70  176    19               mParams  Ljava/util/List<Lio/vertx/codegen/ParamInfo;>;
           71  176    20    resolvedMethodType  Ljavax/lang/model/type/ExecutableType;
           72  176    21            methodType  Ljavax/lang/model/type/ExecutableType;
           73  176    22                params  Ljava/util/List<+Ljavax/lang/model/element/VariableElement;>;
           74   99    23                     i  I
           76   97    24                 param  Ljavax/lang/model/element/VariableElement;
           77   97    25            typeMirror  Ljavax/lang/model/type/TypeMirror;
           79   80    26              typeInfo  Lio/vertx/codegen/type/TypeInfo;
           84   97    26              typeInfo  Lio/vertx/codegen/type/TypeInfo;
           78   97    27               typeUse  Lio/vertx/codegen/type/TypeUse;
           81   84    28                     e  Ljava/lang/Exception;
           82   84    29                    ex  Lio/vertx/codegen/GenException;
           87   97    28                  name  Ljava/lang/String;
           88   97    29                  desc  Ljava/lang/String;
           91   97    30                  text  Lio/vertx/codegen/doc/Text;
           92   93    31    unresolvedTypeInfo  Lio/vertx/codegen/type/TypeInfo;
           95   97    31    unresolvedTypeInfo  Lio/vertx/codegen/type/TypeInfo;
           94   95    32                     e  Ljava/lang/Exception;
           96   97    32                mParam  Lio/vertx/codegen/ParamInfo;
          100  176    23      fluentAnnotation  Ljavax/lang/model/element/AnnotationMirror;
          103  176    24              isFluent  Z
          109  111    25                   msg  Ljava/lang/String;
          113  115    25            fluentType  Ljavax/lang/model/type/TypeMirror;
          116  176    25         returnTypeUse  Lio/vertx/codegen/type/TypeUse;
          117  118    26            returnType  Lio/vertx/codegen/type/TypeInfo;
          122  176    26            returnType  Lio/vertx/codegen/type/TypeInfo;
          119  122    27                     e  Ljava/lang/Exception;
          120  122    28                 genEx  Lio/vertx/codegen/GenException;
          134  176    27      methodDeprecated  Z
          135  176    28            methodName  Ljava/lang/String;
          153  176    29            methodInfo  Lio/vertx/codegen/MethodInfo;
          155  161    30           otherMethod  Ljava/util/Map$Entry<Ljavax/lang/model/element/ExecutableElement;Lio/vertx/codegen/MethodInfo;>;
          157  161    32                    t1  Ljavax/lang/model/type/ExecutableType;
          158  161    33                    t2  Ljavax/lang/model/type/ExecutableType;
          165  170    30         methodsByName  Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;
          172  175    30      declaringApiType  Lio/vertx/codegen/type/ApiTypeInfo;
      Exception table:
        from    to  target  type
          78    79      80  Class java.lang.Exception
          91    92      93  Class java.lang.Exception
         116   117     118  Class java.lang.Exception
    MethodParameters:
                  Name  Flags
      modelMethod       
      allowAnyJavaType  

  protected io.vertx.codegen.MethodInfo createMethodInfo(java.util.Set<io.vertx.codegen.type.ClassTypeInfo>, java.lang.String, java.lang.String, io.vertx.codegen.doc.Doc, io.vertx.codegen.type.TypeInfo, io.vertx.codegen.doc.Text, boolean, boolean, java.util.List<io.vertx.codegen.ParamInfo>, javax.lang.model.element.ExecutableElement, boolean, boolean, java.util.ArrayList<io.vertx.codegen.TypeParamInfo$Method>, javax.lang.model.element.TypeElement, boolean, io.vertx.codegen.doc.Text);
    descriptor: (Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;Lio/vertx/codegen/doc/Doc;Lio/vertx/codegen/type/TypeInfo;Lio/vertx/codegen/doc/Text;ZZLjava/util/List;Ljavax/lang/model/element/ExecutableElement;ZZLjava/util/ArrayList;Ljavax/lang/model/element/TypeElement;ZLio/vertx/codegen/doc/Text;)Lio/vertx/codegen/MethodInfo;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=16, locals=17, args_size=17
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // java.util.Set ownerTypes
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.String comment
        start local 4 // io.vertx.codegen.doc.Doc doc
        start local 5 // io.vertx.codegen.type.TypeInfo returnType
        start local 6 // io.vertx.codegen.doc.Text returnDescription
        start local 7 // boolean isFluent
        start local 8 // boolean isCacheReturn
        start local 9 // java.util.List mParams
        start local 10 // javax.lang.model.element.ExecutableElement methodElt
        start local 11 // boolean isStatic
        start local 12 // boolean isDefault
        start local 13 // java.util.ArrayList typeParams
        start local 14 // javax.lang.model.element.TypeElement declaringElt
        start local 15 // boolean methodDeprecated
        start local 16 // io.vertx.codegen.doc.Text methodDeprecatedDesc
         0: .line 1086
            new io.vertx.codegen.MethodInfo
            dup
            aload 1 /* ownerTypes */
            aload 2 /* methodName */
            aload 5 /* returnType */
            aload 6 /* returnDescription */
         1: .line 1087
            iload 7 /* isFluent */
            iload 8 /* isCacheReturn */
            aload 9 /* mParams */
            aload 3 /* comment */
            aload 4 /* doc */
            iload 11 /* isStatic */
            iload 12 /* isDefault */
            aload 13 /* typeParams */
            iload 15 /* methodDeprecated */
            aload 16 /* methodDeprecatedDesc */
         2: .line 1086
            invokespecial io.vertx.codegen.MethodInfo.<init>:(Ljava/util/Set;Ljava/lang/String;Lio/vertx/codegen/type/TypeInfo;Lio/vertx/codegen/doc/Text;ZZLjava/util/List;Ljava/lang/String;Lio/vertx/codegen/doc/Doc;ZZLjava/util/List;ZLio/vertx/codegen/doc/Text;)V
            areturn
        end local 16 // io.vertx.codegen.doc.Text methodDeprecatedDesc
        end local 15 // boolean methodDeprecated
        end local 14 // javax.lang.model.element.TypeElement declaringElt
        end local 13 // java.util.ArrayList typeParams
        end local 12 // boolean isDefault
        end local 11 // boolean isStatic
        end local 10 // javax.lang.model.element.ExecutableElement methodElt
        end local 9 // java.util.List mParams
        end local 8 // boolean isCacheReturn
        end local 7 // boolean isFluent
        end local 6 // io.vertx.codegen.doc.Text returnDescription
        end local 5 // io.vertx.codegen.type.TypeInfo returnType
        end local 4 // io.vertx.codegen.doc.Doc doc
        end local 3 // java.lang.String comment
        end local 2 // java.lang.String methodName
        end local 1 // java.util.Set ownerTypes
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0                  this  Lio/vertx/codegen/ClassModel;
            0    3     1            ownerTypes  Ljava/util/Set<Lio/vertx/codegen/type/ClassTypeInfo;>;
            0    3     2            methodName  Ljava/lang/String;
            0    3     3               comment  Ljava/lang/String;
            0    3     4                   doc  Lio/vertx/codegen/doc/Doc;
            0    3     5            returnType  Lio/vertx/codegen/type/TypeInfo;
            0    3     6     returnDescription  Lio/vertx/codegen/doc/Text;
            0    3     7              isFluent  Z
            0    3     8         isCacheReturn  Z
            0    3     9               mParams  Ljava/util/List<Lio/vertx/codegen/ParamInfo;>;
            0    3    10             methodElt  Ljavax/lang/model/element/ExecutableElement;
            0    3    11              isStatic  Z
            0    3    12             isDefault  Z
            0    3    13            typeParams  Ljava/util/ArrayList<Lio/vertx/codegen/TypeParamInfo$Method;>;
            0    3    14          declaringElt  Ljavax/lang/model/element/TypeElement;
            0    3    15      methodDeprecated  Z
            0    3    16  methodDeprecatedDesc  Lio/vertx/codegen/doc/Text;
    Signature: (Ljava/util/Set<Lio/vertx/codegen/type/ClassTypeInfo;>;Ljava/lang/String;Ljava/lang/String;Lio/vertx/codegen/doc/Doc;Lio/vertx/codegen/type/TypeInfo;Lio/vertx/codegen/doc/Text;ZZLjava/util/List<Lio/vertx/codegen/ParamInfo;>;Ljavax/lang/model/element/ExecutableElement;ZZLjava/util/ArrayList<Lio/vertx/codegen/TypeParamInfo$Method;>;Ljavax/lang/model/element/TypeElement;ZLio/vertx/codegen/doc/Text;)Lio/vertx/codegen/MethodInfo;
    MethodParameters:
                      Name  Flags
      ownerTypes            
      methodName            
      comment               
      doc                   
      returnType            
      returnDescription     
      isFluent              
      isCacheReturn         
      mParams               
      methodElt             
      isStatic              
      isDefault             
      typeParams            
      declaringElt          
      methodDeprecated      
      methodDeprecatedDesc  

  protected void checkMethod(io.vertx.codegen.MethodInfo);
    descriptor: (Lio/vertx/codegen/MethodInfo;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.MethodInfo methodInfo
         0: .line 1092
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methodMap:Ljava/util/Map;
            aload 1 /* methodInfo */
            invokevirtual io.vertx.codegen.MethodInfo.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* methodsByName */
        start local 2 // java.util.List methodsByName
         1: .line 1093
            aload 2 /* methodsByName */
            ifnull 9
         2: .line 1095
            aload 2 /* methodsByName */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: io.vertx.codegen.ClassModel io.vertx.codegen.MethodInfo java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.codegen.MethodInfo
            astore 3 /* meth */
        start local 3 // io.vertx.codegen.MethodInfo meth
         4: .line 1096
            aload 3 /* meth */
            invokevirtual io.vertx.codegen.MethodInfo.isContainingAnyJavaType:()Z
            ifne 8
            aload 3 /* meth */
            invokevirtual io.vertx.codegen.MethodInfo.getReturnType:()Lio/vertx/codegen/type/TypeInfo;
            aload 1 /* methodInfo */
            invokevirtual io.vertx.codegen.MethodInfo.getReturnType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.equals:(Ljava/lang/Object;)Z
            ifne 8
         5: .line 1097
            new io.vertx.codegen.GenException
            dup
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            new java.lang.StringBuilder
            dup
            ldc "Overloaded method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* methodInfo */
            invokevirtual io.vertx.codegen.MethodInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " must have the same return type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1098
            aload 3 /* meth */
            invokevirtual io.vertx.codegen.MethodInfo.getReturnType:()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 1 /* methodInfo */
            invokevirtual io.vertx.codegen.MethodInfo.getReturnType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1097
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        end local 3 // io.vertx.codegen.MethodInfo meth
         8: .line 1095
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 1102
      StackMap locals: io.vertx.codegen.ClassModel io.vertx.codegen.MethodInfo java.util.List
      StackMap stack:
            return
        end local 2 // java.util.List methodsByName
        end local 1 // io.vertx.codegen.MethodInfo methodInfo
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lio/vertx/codegen/ClassModel;
            0   10     1     methodInfo  Lio/vertx/codegen/MethodInfo;
            1   10     2  methodsByName  Ljava/util/List<Lio/vertx/codegen/MethodInfo;>;
            4    8     3           meth  Lio/vertx/codegen/MethodInfo;
    MethodParameters:
            Name  Flags
      methodInfo  

  private boolean isObjectBound(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.type.TypeMirror bound
         0: .line 1105
            aload 1 /* bound */
            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 1
            aload 1 /* bound */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            ldc Ljava/lang/Object;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // javax.lang.model.type.TypeMirror bound
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lio/vertx/codegen/ClassModel;
            0    2     1  bound  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
       Name  Flags
      bound  

  public boolean isDeprecated();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1112
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.deprecated:Z
            ireturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.doc.Text getDeprecatedDesc();
    descriptor: ()Lio/vertx/codegen/doc/Text;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1118
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.deprecatedDesc:Lio/vertx/codegen/doc/Text;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public java.util.Map<java.lang.String, java.lang.Object> getVars();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1123
            aload 0 /* this */
            invokespecial io.vertx.codegen.Model.getVars:()Ljava/util/Map;
            astore 1 /* vars */
        start local 1 // java.util.Map vars
         1: .line 1124
            aload 1 /* vars */
            ldc "importedTypes"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getImportedTypes:()Ljava/util/Set;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1125
            aload 1 /* vars */
            ldc "concrete"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.isConcrete:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 1126
            aload 1 /* vars */
            ldc "type"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getType:()Lio/vertx/codegen/type/ClassTypeInfo;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 1127
            aload 1 /* vars */
            ldc "ifacePackageName"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getIfacePackageName:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 1128
            aload 1 /* vars */
            ldc "ifaceSimpleName"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getIfaceSimpleName:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1129
            aload 1 /* vars */
            ldc "ifaceFQCN"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getIfaceFQCN:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 1130
            aload 1 /* vars */
            ldc "ifaceComment"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getIfaceComment:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 1131
            aload 1 /* vars */
            ldc "doc"
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.doc:Lio/vertx/codegen/doc/Doc;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 1132
            aload 1 /* vars */
            ldc "methods"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getMethods:()Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1133
            aload 1 /* vars */
            ldc "constants"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getConstants:()Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 1134
            aload 1 /* vars */
            ldc "referencedTypes"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getReferencedTypes:()Ljava/util/Set;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 1135
            aload 1 /* vars */
            ldc "superTypes"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getSuperTypes:()Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 1136
            aload 1 /* vars */
            ldc "concreteSuperType"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getConcreteSuperType:()Lio/vertx/codegen/type/TypeInfo;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 1137
            aload 1 /* vars */
            ldc "abstractSuperTypes"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getAbstractSuperTypes:()Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 1138
            aload 1 /* vars */
            ldc "handlerType"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getHandlerArg:()Lio/vertx/codegen/type/TypeInfo;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 1139
            aload 1 /* vars */
            ldc "methodsByName"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getMethodMap:()Ljava/util/Map;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 1140
            aload 1 /* vars */
            ldc "classAnnotations"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getAnnotations:()Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 1141
            aload 1 /* vars */
            ldc "annotationsByMethodName"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getMethodAnnotations:()Ljava/util/Map;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 1142
            aload 1 /* vars */
            ldc "referencedDataObjectTypes"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getReferencedDataObjectTypes:()Ljava/util/Set;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 1143
            aload 1 /* vars */
            ldc "referencedEnumTypes"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getReferencedEnumTypes:()Ljava/util/Set;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 1144
            aload 1 /* vars */
            ldc "typeParams"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getTypeParams:()Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 1145
            aload 1 /* vars */
            ldc "instanceMethods"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getInstanceMethods:()Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 1146
            aload 1 /* vars */
            ldc "staticMethods"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getStaticMethods:()Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 1147
            aload 1 /* vars */
            ldc "deprecated"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.isDeprecated:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 1148
            aload 1 /* vars */
            ldc "deprecatedDesc"
            aload 0 /* this */
            invokevirtual io.vertx.codegen.ClassModel.getDeprecatedDesc:()Lio/vertx/codegen/doc/Text;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 1149
            aload 1 /* vars */
            areturn
        end local 1 // java.util.Map vars
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lio/vertx/codegen/ClassModel;
            1   27     1  vars  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  public boolean isHandler();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1153
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.handlerArg:Lio/vertx/codegen/type/TypeInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.type.TypeInfo getHandlerArg();
    descriptor: ()Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1157
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.handlerArg:Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public boolean isReadStream();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1161
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.readStreamArg:Lio/vertx/codegen/type/TypeInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.type.TypeInfo getReadStreamArg();
    descriptor: ()Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1165
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.readStreamArg:Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public boolean isWriteStream();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1169
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.writeStreamArg:Lio/vertx/codegen/type/TypeInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.type.TypeInfo getWriteStreamArg();
    descriptor: ()Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1173
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.writeStreamArg:Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public boolean isIterable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1177
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.iterableArg:Lio/vertx/codegen/type/TypeInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.type.TypeInfo getIterableArg();
    descriptor: ()Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1181
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.iterableArg:Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public boolean isIterator();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1185
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.iteratorArg:Lio/vertx/codegen/type/TypeInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.type.TypeInfo getIteratorArg();
    descriptor: ()Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1189
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.iteratorArg:Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public boolean isFunction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1193
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.functionArgs:[Lio/vertx/codegen/type/TypeInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/codegen/ClassModel;

  public io.vertx.codegen.type.TypeInfo[] getFunctionArgs();
    descriptor: ()[Lio/vertx/codegen/type/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.ClassModel this
         0: .line 1197
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.functionArgs:[Lio/vertx/codegen/type/TypeInfo;
            areturn
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;

  public javax.lang.model.element.Element getElement();
    descriptor: ()Ljavax/lang/model/element/Element;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.vertx.codegen.ClassModel.getElement:()Ljavax/lang/model/element/TypeElement;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$io$vertx$codegen$type$ClassKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 46
            getstatic io.vertx.codegen.ClassModel.$SWITCH_TABLE$io$vertx$codegen$type$ClassKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.vertx.codegen.type.ClassKind.values:()[Lio/vertx/codegen/type/ClassKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.vertx.codegen.type.ClassKind.API:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 13
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.vertx.codegen.type.ClassKind.ASYNC_RESULT:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 17
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.vertx.codegen.type.ClassKind.BOXED_PRIMITIVE:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.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 io.vertx.codegen.type.ClassKind.CLASS_TYPE:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 18
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic io.vertx.codegen.type.ClassKind.DATA_OBJECT:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 14
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic io.vertx.codegen.type.ClassKind.ENUM:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.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 io.vertx.codegen.type.ClassKind.FUNCTION:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 16
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic io.vertx.codegen.type.ClassKind.HANDLER:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 15
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic io.vertx.codegen.type.ClassKind.JSON_ARRAY:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 6
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic io.vertx.codegen.type.ClassKind.JSON_OBJECT:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iconst_5
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic io.vertx.codegen.type.ClassKind.LIST:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 10
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic io.vertx.codegen.type.ClassKind.MAP:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 12
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic io.vertx.codegen.type.ClassKind.OBJECT:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 9
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic io.vertx.codegen.type.ClassKind.OTHER:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 19
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic io.vertx.codegen.type.ClassKind.PRIMITIVE:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iconst_3
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic io.vertx.codegen.type.ClassKind.SET:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 11
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic io.vertx.codegen.type.ClassKind.STRING:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iconst_1
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic io.vertx.codegen.type.ClassKind.THROWABLE:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 7
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic io.vertx.codegen.type.ClassKind.VOID:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 8
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            dup
            putstatic io.vertx.codegen.ClassModel.$SWITCH_TABLE$io$vertx$codegen$type$ClassKind:[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

  static int[] $SWITCH_TABLE$javax$lang$model$element$ElementKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 46
            getstatic io.vertx.codegen.ClassModel.$SWITCH_TABLE$javax$lang$model$element$ElementKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.lang.model.element.ElementKind.values:()[Ljavax/lang/model/element/ElementKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.lang.model.element.ElementKind.ANNOTATION_TYPE:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            iconst_4
            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.element.ElementKind.CLASS:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.lang.model.element.ElementKind.CONSTRUCTOR:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 12
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.lang.model.element.ElementKind.ENUM:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic javax.lang.model.element.ElementKind.ENUM_CONSTANT:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 6
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic javax.lang.model.element.ElementKind.EXCEPTION_PARAMETER:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 10
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic javax.lang.model.element.ElementKind.FIELD:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 7
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic javax.lang.model.element.ElementKind.INSTANCE_INIT:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 14
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic javax.lang.model.element.ElementKind.INTERFACE:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            iconst_5
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic javax.lang.model.element.ElementKind.LOCAL_VARIABLE:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 9
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic javax.lang.model.element.ElementKind.METHOD:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 11
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic javax.lang.model.element.ElementKind.OTHER:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 16
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic javax.lang.model.element.ElementKind.PACKAGE:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            iconst_1
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic javax.lang.model.element.ElementKind.PARAMETER:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 8
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic javax.lang.model.element.ElementKind.RESOURCE_VARIABLE:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 17
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic javax.lang.model.element.ElementKind.STATIC_INIT:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 13
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic javax.lang.model.element.ElementKind.TYPE_PARAMETER:Ljavax/lang/model/element/ElementKind;
            invokevirtual javax.lang.model.element.ElementKind.ordinal:()I
            bipush 15
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            dup
            putstatic io.vertx.codegen.ClassModel.$SWITCH_TABLE$javax$lang$model$element$ElementKind:[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

  private static boolean lambda$1(io.vertx.codegen.MethodInfo);
    descriptor: (Lio/vertx/codegen/MethodInfo;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.MethodInfo m
         0: .line 153
            aload 0 /* m */
            invokevirtual io.vertx.codegen.MethodInfo.isStaticMethod:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // io.vertx.codegen.MethodInfo m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     m  Lio/vertx/codegen/MethodInfo;

  private static int lambda$2(io.vertx.codegen.MethodInfo);
    descriptor: (Lio/vertx/codegen/MethodInfo;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.MethodInfo meth
         0: .line 260
            aload 0 /* meth */
            invokevirtual io.vertx.codegen.MethodInfo.getParams:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ireturn
        end local 0 // io.vertx.codegen.MethodInfo meth
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  meth  Lio/vertx/codegen/MethodInfo;

  private static boolean lambda$3(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.lang.model.element.ExecutableElement m
         0: .line 428
            aload 0 /* m */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            ldc "toJson"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 429
            aload 0 /* m */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
         2: .line 430
            aload 0 /* m */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            ldc "io.vertx.core.json.JsonObject"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 0 // javax.lang.model.element.ExecutableElement m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     m  Ljavax/lang/model/element/ExecutableElement;

  private boolean lambda$5(io.vertx.codegen.type.ClassTypeInfo);
    descriptor: (Lio/vertx/codegen/type/ClassTypeInfo;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.ClassTypeInfo t
         0: .line 565
            aload 1 /* t */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getPackageName:()Ljava/lang/String;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.ifaceFQCN:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // io.vertx.codegen.type.ClassTypeInfo t
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/codegen/ClassModel;
            0    3     1     t  Lio/vertx/codegen/type/ClassTypeInfo;

  private boolean lambda$7(io.vertx.codegen.type.ApiTypeInfo);
    descriptor: (Lio/vertx/codegen/type/ApiTypeInfo;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.type.ApiTypeInfo t
         0: .line 571
            aload 1 /* t */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.type:Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            invokevirtual io.vertx.codegen.type.ApiTypeInfo.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // io.vertx.codegen.type.ApiTypeInfo t
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/codegen/ClassModel;
            0    3     1     t  Lio/vertx/codegen/type/ApiTypeInfo;

  private static boolean lambda$9(io.vertx.codegen.type.DataObjectTypeInfo);
    descriptor: (Lio/vertx/codegen/type/DataObjectTypeInfo;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.type.DataObjectTypeInfo t
         0: .line 577
            aload 0 /* t */
            invokevirtual io.vertx.codegen.type.DataObjectTypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.DATA_OBJECT:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // io.vertx.codegen.type.DataObjectTypeInfo t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Lio/vertx/codegen/type/DataObjectTypeInfo;

  private static boolean lambda$11(io.vertx.codegen.type.EnumTypeInfo);
    descriptor: (Lio/vertx/codegen/type/EnumTypeInfo;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.type.EnumTypeInfo t
         0: .line 583
            aload 0 /* t */
            invokevirtual io.vertx.codegen.type.EnumTypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.ENUM:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // io.vertx.codegen.type.EnumTypeInfo t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Lio/vertx/codegen/type/EnumTypeInfo;

  private static boolean lambda$13(io.vertx.codegen.doc.Tag);
    descriptor: (Lio/vertx/codegen/doc/Tag;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.doc.Tag tag
         0: .line 627
            aload 0 /* tag */
            invokevirtual io.vertx.codegen.doc.Tag.getName:()Ljava/lang/String;
            ldc "deprecated"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // io.vertx.codegen.doc.Tag tag
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   tag  Lio/vertx/codegen/doc/Tag;

  private void lambda$14(io.vertx.codegen.doc.Tag);
    descriptor: (Lio/vertx/codegen/doc/Tag;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.doc.Tag tag
         0: .line 628
            aload 0 /* this */
            new io.vertx.codegen.doc.Text
            dup
            aload 1 /* tag */
            invokevirtual io.vertx.codegen.doc.Tag.getValue:()Ljava/lang/String;
            invokestatic io.vertx.codegen.Helper.normalizeWhitespaces:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial io.vertx.codegen.doc.Text.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokestatic io.vertx.codegen.doc.Token.tagMapper:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;)Ljava/util/function/Function;
            invokevirtual io.vertx.codegen.doc.Text.map:(Ljava/util/function/Function;)Lio/vertx/codegen/doc/Text;
            dup_x1
            putfield io.vertx.codegen.ClassModel.deprecatedDesc:Lio/vertx/codegen/doc/Text;
            return
        end local 1 // io.vertx.codegen.doc.Tag tag
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
            0    1     1   tag  Lio/vertx/codegen/doc/Tag;

  private boolean lambda$15(javax.lang.model.type.TypeMirror, javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/element/Element;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 2 // javax.lang.model.element.Element elt
         0: .line 727
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 2 /* elt */
            invokeinterface javax.lang.model.element.Element.getEnclosingElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 1
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 2 // javax.lang.model.element.Element elt
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/codegen/ClassModel;
            0    3     2   elt  Ljavax/lang/model/element/Element;

  private void lambda$16(javax.lang.model.element.VariableElement);
    descriptor: (Ljavax/lang/model/element/VariableElement;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.VariableElement elt
         0: .line 730
            aload 1 /* elt */
            ldc Lio/vertx/codegen/annotations/GenIgnore;
            invokeinterface javax.lang.model.element.VariableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast io.vertx.codegen.annotations.GenIgnore
            astore 2 /* genIgnore */
        start local 2 // io.vertx.codegen.annotations.GenIgnore genIgnore
         1: .line 732
            aload 2 /* genIgnore */
            ifnull 6
         2: .line 733
            aload 2 /* genIgnore */
            invokeinterface io.vertx.codegen.annotations.GenIgnore.value:()[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            ldc "permitted-type"
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 735
            return
         4: .line 737
      StackMap locals: io.vertx.codegen.annotations.GenIgnore
      StackMap stack:
            iconst_1
            istore 3 /* allowAnyJavaType */
        start local 3 // boolean allowAnyJavaType
         5: .line 738
            goto 7
        end local 3 // boolean allowAnyJavaType
         6: .line 739
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* allowAnyJavaType */
        start local 3 // boolean allowAnyJavaType
         7: .line 741
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* elt */
            iload 3 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.fieldMethod:(Ljavax/lang/model/element/VariableElement;Z)Lio/vertx/codegen/ConstantInfo;
            astore 4 /* cst */
        start local 4 // io.vertx.codegen.ConstantInfo cst
         8: .line 742
            aload 4 /* cst */
            ifnull 11
         9: .line 743
            aload 4 /* cst */
            invokevirtual io.vertx.codegen.ConstantInfo.getType:()Lio/vertx/codegen/type/TypeInfo;
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.collectedTypes:Ljava/util/Set;
            invokevirtual io.vertx.codegen.type.TypeInfo.collectImports:(Ljava/util/Collection;)V
        10: .line 744
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.constants:Ljava/util/List;
            aload 4 /* cst */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // io.vertx.codegen.ConstantInfo cst
        end local 3 // boolean allowAnyJavaType
        end local 2 // io.vertx.codegen.annotations.GenIgnore genIgnore
        11: .line 746
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.lang.model.element.VariableElement elt
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lio/vertx/codegen/ClassModel;
            0   12     1               elt  Ljavax/lang/model/element/VariableElement;
            1   11     2         genIgnore  Lio/vertx/codegen/annotations/GenIgnore;
            5    6     3  allowAnyJavaType  Z
            7   11     3  allowAnyJavaType  Z
            8   11     4               cst  Lio/vertx/codegen/ConstantInfo;

  private boolean lambda$17(javax.lang.model.type.TypeMirror, javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/element/Element;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 2 // javax.lang.model.element.Element elt
         0: .line 751
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 2 /* elt */
            invokeinterface javax.lang.model.element.Element.getEnclosingElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 1
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 2 // javax.lang.model.element.Element elt
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/codegen/ClassModel;
            0    3     2   elt  Ljavax/lang/model/element/Element;

  private void lambda$18(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.element.ExecutableElement elt
         0: .line 754
            aload 1 /* elt */
            ldc Lio/vertx/codegen/annotations/GenIgnore;
            invokeinterface javax.lang.model.element.ExecutableElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast io.vertx.codegen.annotations.GenIgnore
            astore 2 /* genIgnore */
        start local 2 // io.vertx.codegen.annotations.GenIgnore genIgnore
         1: .line 756
            aload 2 /* genIgnore */
            ifnull 6
         2: .line 757
            aload 2 /* genIgnore */
            invokeinterface io.vertx.codegen.annotations.GenIgnore.value:()[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            ldc "permitted-type"
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 759
            return
         4: .line 761
      StackMap locals: io.vertx.codegen.annotations.GenIgnore
      StackMap stack:
            iconst_1
            istore 3 /* allowAnyJavaType */
        start local 3 // boolean allowAnyJavaType
         5: .line 762
            goto 7
        end local 3 // boolean allowAnyJavaType
         6: .line 763
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* allowAnyJavaType */
        start local 3 // boolean allowAnyJavaType
         7: .line 765
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* elt */
            iload 3 /* allowAnyJavaType */
            invokevirtual io.vertx.codegen.ClassModel.createMethod:(Ljavax/lang/model/element/ExecutableElement;Z)Lio/vertx/codegen/MethodInfo;
            astore 4 /* meth */
        start local 4 // io.vertx.codegen.MethodInfo meth
         8: .line 766
            aload 4 /* meth */
            ifnull 14
         9: .line 767
            aload 4 /* meth */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.collectedTypes:Ljava/util/Set;
            invokevirtual io.vertx.codegen.MethodInfo.collectImports:(Ljava/util/Collection;)V
        10: .line 768
            iload 3 /* allowAnyJavaType */
            ifeq 13
        11: .line 769
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.anyJavaTypeMethods:Ljava/util/LinkedHashMap;
            aload 1 /* elt */
            aload 4 /* meth */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 770
            goto 14
        13: .line 771
      StackMap locals: io.vertx.codegen.MethodInfo
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.methods:Ljava/util/LinkedHashMap;
            aload 1 /* elt */
            aload 4 /* meth */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // io.vertx.codegen.MethodInfo meth
        end local 3 // boolean allowAnyJavaType
        end local 2 // io.vertx.codegen.annotations.GenIgnore genIgnore
        14: .line 774
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.lang.model.element.ExecutableElement elt
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   15     0              this  Lio/vertx/codegen/ClassModel;
            0   15     1               elt  Ljavax/lang/model/element/ExecutableElement;
            1   14     2         genIgnore  Lio/vertx/codegen/annotations/GenIgnore;
            5    6     3  allowAnyJavaType  Z
            7   14     3  allowAnyJavaType  Z
            8   14     4              meth  Lio/vertx/codegen/MethodInfo;

  private boolean lambda$19(io.vertx.codegen.MethodInfo);
    descriptor: (Lio/vertx/codegen/MethodInfo;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // io.vertx.codegen.MethodInfo m
         0: .line 784
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.anyJavaTypeMethods:Ljava/util/LinkedHashMap;
            aload 1 /* m */
            invokevirtual java.util.LinkedHashMap.containsValue:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // io.vertx.codegen.MethodInfo m
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/codegen/ClassModel;
            0    3     1     m  Lio/vertx/codegen/MethodInfo;

  private int lambda$20(javax.lang.model.type.DeclaredType, javax.lang.model.type.DeclaredType);
    descriptor: (Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/type/DeclaredType;)I
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 1 // javax.lang.model.type.DeclaredType o1
        start local 2 // javax.lang.model.type.DeclaredType o2
         0: .line 888
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 1 /* o1 */
            aload 2 /* o2 */
            invokeinterface javax.lang.model.util.Types.isSubtype:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 2
         1: .line 889
            iconst_m1
            ireturn
         2: .line 890
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeUtils:Ljavax/lang/model/util/Types;
            aload 2 /* o2 */
            aload 1 /* o1 */
            invokeinterface javax.lang.model.util.Types.isSubtype:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 4
         3: .line 891
            iconst_1
            ireturn
         4: .line 893
      StackMap locals:
      StackMap stack:
            aload 1 /* o1 */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aload 2 /* o2 */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 2 // javax.lang.model.type.DeclaredType o2
        end local 1 // javax.lang.model.type.DeclaredType o1
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/codegen/ClassModel;
            0    5     1    o1  Ljavax/lang/model/type/DeclaredType;
            0    5     2    o2  Ljavax/lang/model/type/DeclaredType;

  private boolean lambda$21(javax.lang.model.element.ExecutableElement, javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.codegen.ClassModel this
        start local 2 // javax.lang.model.element.ExecutableElement meth
         0: .line 904
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1
            aload 2 /* meth */
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.modelElt:Ljavax/lang/model/element/TypeElement;
            invokeinterface javax.lang.model.util.Elements.overrides:(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/element/TypeElement;)Z
            ireturn
        end local 2 // javax.lang.model.element.ExecutableElement meth
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/ClassModel;
            0    1     2  meth  Ljavax/lang/model/element/ExecutableElement;

  private void lambda$22(java.util.List, java.util.Set, javax.lang.model.element.TypeElement, javax.lang.model.element.ExecutableElement);
    descriptor: (Ljava/util/List;Ljava/util/Set;Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/ExecutableElement;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // io.vertx.codegen.ClassModel this
        start local 4 // javax.lang.model.element.ExecutableElement overridenMethodElt
         0: .line 906
            aload 1
            aload 4 /* overridenMethodElt */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 907
            aload 2
            aload 0 /* this */
            getfield io.vertx.codegen.ClassModel.typeFactory:Lio/vertx/codegen/type/TypeMirrorFactory;
            aload 3
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.DeclaredType
            invokevirtual io.vertx.codegen.type.TypeMirrorFactory.create:(Ljavax/lang/model/type/DeclaredType;)Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getRaw:()Lio/vertx/codegen/type/ClassTypeInfo;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 908
            return
        end local 4 // javax.lang.model.element.ExecutableElement overridenMethodElt
        end local 0 // io.vertx.codegen.ClassModel this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lio/vertx/codegen/ClassModel;
            0    3     4  overridenMethodElt  Ljavax/lang/model/element/ExecutableElement;

  private static boolean lambda$23(io.vertx.codegen.doc.Tag);
    descriptor: (Lio/vertx/codegen/doc/Tag;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.doc.Tag tag
         0: .line 922
            aload 0 /* tag */
            invokevirtual io.vertx.codegen.doc.Tag.getName:()Ljava/lang/String;
            ldc "param"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // io.vertx.codegen.doc.Tag tag
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   tag  Lio/vertx/codegen/doc/Tag;

  private static void lambda$25(java.util.Map, io.vertx.codegen.doc.Tag$Param);
    descriptor: (Ljava/util/Map;Lio/vertx/codegen/doc/Tag$Param;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // io.vertx.codegen.doc.Tag$Param tag
         0: .line 924
            aload 0
            aload 1 /* tag */
            invokevirtual io.vertx.codegen.doc.Tag$Param.getParamName:()Ljava/lang/String;
            aload 1 /* tag */
            invokevirtual io.vertx.codegen.doc.Tag$Param.getParamDescription:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 1 // io.vertx.codegen.doc.Tag$Param tag
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   tag  Lio/vertx/codegen/doc/Tag$Param;

  private static boolean lambda$26(io.vertx.codegen.doc.Tag);
    descriptor: (Lio/vertx/codegen/doc/Tag;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.doc.Tag tag
         0: .line 928
            aload 0 /* tag */
            invokevirtual io.vertx.codegen.doc.Tag.getName:()Ljava/lang/String;
            ldc "return"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // io.vertx.codegen.doc.Tag tag
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   tag  Lio/vertx/codegen/doc/Tag;

  private static boolean lambda$27(io.vertx.codegen.doc.Tag);
    descriptor: (Lio/vertx/codegen/doc/Tag;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.doc.Tag tag
         0: .line 936
            aload 0 /* tag */
            invokevirtual io.vertx.codegen.doc.Tag.getName:()Ljava/lang/String;
            ldc "deprecated"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // io.vertx.codegen.doc.Tag tag
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   tag  Lio/vertx/codegen/doc/Tag;
}
SourceFile: "ClassModel.java"
InnerClasses:
  public Class = io.vertx.codegen.TypeParamInfo$Class of io.vertx.codegen.TypeParamInfo
  public Method = io.vertx.codegen.TypeParamInfo$Method of io.vertx.codegen.TypeParamInfo
  public Factory = io.vertx.codegen.doc.Doc$Factory of io.vertx.codegen.doc.Doc
  public Param = io.vertx.codegen.doc.Tag$Param of io.vertx.codegen.doc.Tag
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final Kind = javax.tools.Diagnostic$Kind of javax.tools.Diagnostic