public class io.vertx.codegen.Helper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.codegen.Helper
  super_class: java.lang.Object
{
  public static final java.util.function.Function<javax.lang.model.element.Element, java.util.stream.Stream<javax.lang.model.element.ExecutableElement>> FILTER_METHOD;
    descriptor: Ljava/util/function/Function;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Function<Ljavax/lang/model/element/Element;Ljava/util/stream/Stream<Ljavax/lang/model/element/ExecutableElement;>;>;

  public static final java.util.function.Function<javax.lang.model.element.Element, java.util.stream.Stream<javax.lang.model.element.VariableElement>> FILTER_FIELD;
    descriptor: Ljava/util/function/Function;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Function<Ljavax/lang/model/element/Element;Ljava/util/stream/Stream<Ljavax/lang/model/element/VariableElement;>;>;

  static final java.util.function.Function<javax.lang.model.element.Element, java.util.stream.Stream<javax.lang.model.element.ExecutableElement>> CAST;
    descriptor: Ljava/util/function/Function;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Function<Ljavax/lang/model/element/Element;Ljava/util/stream/Stream<Ljavax/lang/model/element/ExecutableElement;>;>;

  private static final java.util.regex.Pattern SIGNATURE_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.util.regex.Pattern LINK_REFERENCE_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern WHITESPACE_CLUSTER_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 51
            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/Helper.lambda$0(Ljavax/lang/model/element/Element;)Ljava/util/stream/Stream; (6)
                  (Ljavax/lang/model/element/Element;)Ljava/util/stream/Stream;
            putstatic io.vertx.codegen.Helper.FILTER_METHOD:Ljava/util/function/Function;
         1: .line 59
            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/Helper.lambda$1(Ljavax/lang/model/element/Element;)Ljava/util/stream/Stream; (6)
                  (Ljavax/lang/model/element/Element;)Ljava/util/stream/Stream;
            putstatic io.vertx.codegen.Helper.FILTER_FIELD:Ljava/util/function/Function;
         2: .line 81
            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/Helper.lambda$2(Ljavax/lang/model/element/Element;)Ljava/util/stream/Stream; (6)
                  (Ljavax/lang/model/element/Element;)Ljava/util/stream/Stream;
            putstatic io.vertx.codegen.Helper.CAST:Ljava/util/function/Function;
         3: .line 341
            ldc "#(\\p{javaJavaIdentifierStart}(?:\\p{javaJavaIdentifierPart})*)(?:\\((.*)\\))?$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.codegen.Helper.SIGNATURE_PATTERN:Ljava/util/regex/Pattern;
         4: .line 343
            new java.lang.StringBuilder
            dup
            ldc "(?:(?:\\p{javaJavaIdentifierStart}\\p{javaJavaIdentifierPart}*\\.)*\\p{javaJavaIdentifierStart}\\p{javaJavaIdentifierPart}*)?(?:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 344
            getstatic io.vertx.codegen.Helper.SIGNATURE_PATTERN:Ljava/util/regex/Pattern;
            invokevirtual java.util.regex.Pattern.pattern:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 343
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 342
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.codegen.Helper.LINK_REFERENCE_PATTERN:Ljava/util/regex/Pattern;
         8: .line 483
            ldc "\\s+"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.codegen.Helper.WHITESPACE_CLUSTER_PATTERN:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.Helper this
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.codegen.Helper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/Helper;

  static <T> java.util.function.Function<java.lang.Object, java.util.stream.Stream<T>> instanceOf(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/util/function/Function;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 68
            aload 0 /* type */
            invokedynamic apply(Ljava/lang/Class;)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/Helper.lambda$3(Ljava/lang/Class;Ljava/lang/Object;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/Object;)Ljava/util/stream/Stream;
            areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Ljava/util/function/Function<Ljava/lang/Object;Ljava/util/stream/Stream<TT;>;>;
    MethodParameters:
      Name  Flags
      type  

  static <T> java.util.function.Function<java.lang.Object, java.util.stream.Stream<T>> cast(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/util/function/Function;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 78
            aload 0 /* type */
            invokedynamic apply(Ljava/lang/Class;)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/Helper.lambda$4(Ljava/lang/Class;Ljava/lang/Object;)Ljava/util/stream/Stream; (6)
                  (Ljava/lang/Object;)Ljava/util/stream/Stream;
            areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Ljava/util/function/Function<Ljava/lang/Object;Ljava/util/stream/Stream<TT;>;>;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.String normalizePropertyName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String propertyName
         0: .line 110
            aload 0 /* propertyName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 7
         1: .line 111
            new java.lang.StringBuilder
            dup
            aload 0 /* propertyName */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* buffer */
        start local 1 // java.lang.StringBuilder buffer
         2: .line 112
            iconst_0
            istore 2 /* index */
        start local 2 // int index
         3: .line 114
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* buffer */
            iload 2 /* index */
            aload 1 /* buffer */
            iload 2 /* index */
            iinc 2 /* index */ 1
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            invokestatic java.lang.Character.toLowerCase:(C)C
            invokevirtual java.lang.StringBuilder.setCharAt:(IC)V
         4: .line 115
            iload 2 /* index */
            aload 1 /* buffer */
            invokevirtual java.lang.StringBuilder.length:()I
            if_icmpge 6
            aload 1 /* buffer */
            iload 2 /* index */
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 6
         5: .line 116
            iload 2 /* index */
            iconst_1
            iadd
            aload 1 /* buffer */
            invokevirtual java.lang.StringBuilder.length:()I
            if_icmpge 3
            aload 1 /* buffer */
            iload 2 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            invokestatic java.lang.Character.isLowerCase:(C)Z
            ifeq 3
         6: .line 123
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 0 /* propertyName */
        end local 2 // int index
        end local 1 // java.lang.StringBuilder buffer
         7: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* propertyName */
            areturn
        end local 0 // java.lang.String propertyName
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0  propertyName  Ljava/lang/String;
            2    7     1        buffer  Ljava/lang/StringBuilder;
            3    7     2         index  I
    MethodParameters:
              Name  Flags
      propertyName  

  public static java.lang.String decapitaliseFirstLetter(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String str
         0: .line 129
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 130
            aload 0 /* str */
            areturn
         2: .line 132
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* str */
            iconst_0
            iconst_1
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* str */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  public static java.lang.String convertCamelCaseToUnderscores(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String str
         0: .line 137
            aload 0 /* str */
            ldc "([A-Z]+)([A-Z][a-z])"
            ldc "$1_$2"
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            ldc "([a-z\\d])([A-Z])"
            ldc "$1_$2"
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  public static java.lang.String getSimpleName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String type
         0: .line 141
            aload 0 /* type */
            aload 0 /* type */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.String getPackageName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String type
         0: .line 145
            aload 0 /* type */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* index */
        start local 1 // int index
         1: .line 146
            iload 1 /* index */
            iflt 3
         2: .line 147
            aload 0 /* type */
            iconst_0
            iload 1 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
         3: .line 149
      StackMap locals: int
      StackMap stack:
            ldc ""
            areturn
        end local 1 // int index
        end local 0 // java.lang.String type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   type  Ljava/lang/String;
            1    4     1  index  I
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.String getNonGenericType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String type
         0: .line 154
            aload 0 /* type */
            ldc "<"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 1 /* pos */
        start local 1 // int pos
         1: .line 155
            iload 1 /* pos */
            iflt 4
         2: .line 156
            aload 0 /* type */
            iconst_0
            iload 1 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* nonGenericType */
        start local 2 // java.lang.String nonGenericType
         3: .line 157
            aload 2 /* nonGenericType */
            areturn
        end local 2 // java.lang.String nonGenericType
         4: .line 159
      StackMap locals: int
      StackMap stack:
            aload 0 /* type */
            areturn
        end local 1 // int pos
        end local 0 // java.lang.String type
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            type  Ljava/lang/String;
            1    5     1             pos  I
            3    4     2  nonGenericType  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.String indentString(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.String str
        start local 1 // java.lang.String indent
         0: .line 164
            new java.lang.StringBuilder
            dup
            aload 1 /* indent */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 165
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 8
         3: .line 166
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* str */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* ch */
        start local 4 // char ch
         4: .line 167
            aload 2 /* sb */
            iload 4 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 168
            iload 4 /* ch */
            bipush 10
            if_icmpne 7
            iload 3 /* i */
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            if_icmpeq 7
         6: .line 169
            aload 2 /* sb */
            aload 1 /* indent */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // char ch
         7: .line 165
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 3 // int i
         9: .line 172
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.lang.String indent
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0     str  Ljava/lang/String;
            0   10     1  indent  Ljava/lang/String;
            1   10     2      sb  Ljava/lang/StringBuilder;
            2    9     3       i  I
            4    7     4      ch  C
    MethodParameters:
        Name  Flags
      str     
      indent  

  public static java.lang.String getJavadocTag(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.String comment
        start local 1 // java.lang.String tagName
         0: .line 176
            aload 0 /* comment */
            aload 1 /* tagName */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* pos */
        start local 2 // int pos
         1: .line 177
            aload 0 /* comment */
            ldc "\n"
            iload 2 /* pos */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            istore 3 /* endPos */
        start local 3 // int endPos
         2: .line 178
            aload 0 /* comment */
            iload 2 /* pos */
            aload 1 /* tagName */
            invokevirtual java.lang.String.length:()I
            iadd
            iconst_1
            iadd
            iload 3 /* endPos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* tag */
        start local 4 // java.lang.String tag
         3: .line 179
            aload 4 /* tag */
            areturn
        end local 4 // java.lang.String tag
        end local 3 // int endPos
        end local 2 // int pos
        end local 1 // java.lang.String tagName
        end local 0 // java.lang.String comment
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  comment  Ljava/lang/String;
            0    4     1  tagName  Ljava/lang/String;
            1    4     2      pos  I
            2    4     3   endPos  I
            3    4     4      tag  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      comment  
      tagName  

  public static java.lang.String removeTags(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String comment
         0: .line 185
            aload 0 /* comment */
            bipush 64
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* pos */
        start local 1 // int pos
         1: .line 186
            iload 1 /* pos */
            iconst_m1
            if_icmpne 3
         2: .line 187
            aload 0 /* comment */
            areturn
         3: .line 189
      StackMap locals: int
      StackMap stack:
            iload 1 /* pos */
            ifle 10
         4: .line 190
            aload 0 /* comment */
            iconst_0
            iload 1 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* beforePos */
        start local 2 // java.lang.String beforePos
         5: .line 191
            aload 2 /* beforePos */
            bipush 10
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* prevReturn */
        start local 3 // int prevReturn
         6: .line 192
            iload 3 /* prevReturn */
            iconst_m1
            if_icmpeq 9
         7: .line 193
            iload 3 /* prevReturn */
            istore 1 /* pos */
         8: .line 194
            goto 10
         9: .line 195
      StackMap locals: java.lang.String int
      StackMap stack:
            iconst_0
            istore 1 /* pos */
        end local 3 // int prevReturn
        end local 2 // java.lang.String beforePos
        10: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* comment */
            iconst_0
            iload 1 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 1 // int pos
        end local 0 // java.lang.String comment
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0     comment  Ljava/lang/String;
            1   11     1         pos  I
            5   10     2   beforePos  Ljava/lang/String;
            6   10     3  prevReturn  I
    MethodParameters:
         Name  Flags
      comment  

  public static javax.lang.model.element.AnnotationMirror resolveMethodAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>, javax.lang.model.util.Elements, javax.lang.model.util.Types, javax.lang.model.element.TypeElement, javax.lang.model.element.ExecutableElement);
    descriptor: (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;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // java.lang.Class annotationType
        start local 1 // javax.lang.model.util.Elements elementUtils
        start local 2 // javax.lang.model.util.Types typeUtils
        start local 3 // javax.lang.model.element.TypeElement declaring
        start local 4 // javax.lang.model.element.ExecutableElement method
         0: .line 216
            aload 1 /* elementUtils */
            aload 0 /* annotationType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            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;
            checkcast javax.lang.model.type.DeclaredType
         1: .line 217
            aload 1 /* elementUtils */
            aload 2 /* typeUtils */
            aload 3 /* declaring */
            aload 4 /* method */
         2: .line 215
            invokestatic io.vertx.codegen.Helper.resolveMethodAnnotation:(Ljavax/lang/model/type/DeclaredType;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;
            areturn
        end local 4 // javax.lang.model.element.ExecutableElement method
        end local 3 // javax.lang.model.element.TypeElement declaring
        end local 2 // javax.lang.model.util.Types typeUtils
        end local 1 // javax.lang.model.util.Elements elementUtils
        end local 0 // java.lang.Class annotationType
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0  annotationType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
            0    3     1    elementUtils  Ljavax/lang/model/util/Elements;
            0    3     2       typeUtils  Ljavax/lang/model/util/Types;
            0    3     3       declaring  Ljavax/lang/model/element/TypeElement;
            0    3     4          method  Ljavax/lang/model/element/ExecutableElement;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;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;
    MethodParameters:
                Name  Flags
      annotationType  
      elementUtils    
      typeUtils       
      declaring       
      method          

  public static javax.lang.model.element.AnnotationMirror resolveMethodAnnotation(javax.lang.model.type.DeclaredType, javax.lang.model.util.Elements, javax.lang.model.util.Types, javax.lang.model.element.TypeElement, javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/type/DeclaredType;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;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // javax.lang.model.type.DeclaredType annotationType
        start local 1 // javax.lang.model.util.Elements elementUtils
        start local 2 // javax.lang.model.util.Types typeUtils
        start local 3 // javax.lang.model.element.TypeElement declaring
        start local 4 // javax.lang.model.element.ExecutableElement method
         0: .line 234
            aload 4 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getAnnotationMirrors:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 2 /* typeUtils */
            aload 0 /* annotationType */
            invokedynamic test(Ljavax/lang/model/util/Types;Ljavax/lang/model/type/DeclaredType;)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/Helper.lambda$5(Ljavax/lang/model/util/Types;Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/element/AnnotationMirror;)Z (6)
                  (Ljavax/lang/model/element/AnnotationMirror;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            astore 5 /* annotation */
        start local 5 // java.util.Optional annotation
         1: .line 235
            aload 5 /* annotation */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 3
         2: .line 236
            aload 5 /* annotation */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast javax.lang.model.element.AnnotationMirror
            areturn
         3: .line 238
      StackMap locals: java.util.Optional
      StackMap stack:
            aload 0 /* annotationType */
            aload 1 /* elementUtils */
            aload 2 /* typeUtils */
            aload 3 /* declaring */
            aload 4 /* method */
            aload 4 /* method */
            invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            invokestatic io.vertx.codegen.Helper.isFluent:(Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
            areturn
        end local 5 // java.util.Optional annotation
        end local 4 // javax.lang.model.element.ExecutableElement method
        end local 3 // javax.lang.model.element.TypeElement declaring
        end local 2 // javax.lang.model.util.Types typeUtils
        end local 1 // javax.lang.model.util.Elements elementUtils
        end local 0 // javax.lang.model.type.DeclaredType annotationType
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  annotationType  Ljavax/lang/model/type/DeclaredType;
            0    4     1    elementUtils  Ljavax/lang/model/util/Elements;
            0    4     2       typeUtils  Ljavax/lang/model/util/Types;
            0    4     3       declaring  Ljavax/lang/model/element/TypeElement;
            0    4     4          method  Ljavax/lang/model/element/ExecutableElement;
            1    4     5      annotation  Ljava/util/Optional<+Ljavax/lang/model/element/AnnotationMirror;>;
    MethodParameters:
                Name  Flags
      annotationType  
      elementUtils    
      typeUtils       
      declaring       
      method          

  private static javax.lang.model.element.AnnotationMirror isFluent(javax.lang.model.type.DeclaredType, javax.lang.model.util.Elements, javax.lang.model.util.Types, javax.lang.model.element.TypeElement, javax.lang.model.element.ExecutableElement, javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=6
        start local 0 // javax.lang.model.type.DeclaredType annotationType
        start local 1 // javax.lang.model.util.Elements elementUtils
        start local 2 // javax.lang.model.util.Types typeUtils
        start local 3 // javax.lang.model.element.TypeElement declaring
        start local 4 // javax.lang.model.element.ExecutableElement method
        start local 5 // javax.lang.model.type.TypeMirror type
         0: .line 244
            aload 2 /* typeUtils */
            aload 5 /* type */
            invokeinterface javax.lang.model.util.Types.directSupertypes:(Ljavax/lang/model/type/TypeMirror;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 18
      StackMap locals: javax.lang.model.type.DeclaredType javax.lang.model.util.Elements javax.lang.model.util.Types javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement javax.lang.model.type.TypeMirror top java.util.Iterator
      StackMap stack:
         1: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 6 /* directSuperType */
        start local 6 // javax.lang.model.type.TypeMirror directSuperType
         2: .line 245
            aload 2 /* typeUtils */
            aload 6 /* directSuperType */
            invokeinterface javax.lang.model.util.Types.asElement:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/Element;
            astore 8 /* directSuperTypeElt */
        start local 8 // javax.lang.model.element.Element directSuperTypeElt
         3: .line 246
            aload 8 /* directSuperTypeElt */
            instanceof javax.lang.model.element.TypeElement
            ifeq 18
         4: .line 247
            aload 8 /* directSuperTypeElt */
            checkcast javax.lang.model.element.TypeElement
            invokeinterface javax.lang.model.element.TypeElement.getEnclosedElements:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         5: .line 248
            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/Helper.lambda$6(Ljavax/lang/model/element/Element;)Z (6)
                  (Ljavax/lang/model/element/Element;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            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/Helper.lambda$7(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/ExecutableElement; (6)
                  (Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/ExecutableElement;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         6: .line 249
            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
         7: .line 247
            astore 9 /* methods */
        start local 9 // java.util.List methods
         8: .line 250
            aload 9 /* methods */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 14
      StackMap locals: javax.lang.model.type.DeclaredType javax.lang.model.util.Elements javax.lang.model.util.Types javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror java.util.Iterator javax.lang.model.element.Element java.util.List top java.util.Iterator
      StackMap stack:
         9: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ExecutableElement
            astore 10 /* m */
        start local 10 // javax.lang.model.element.ExecutableElement m
        10: .line 251
            aload 1 /* elementUtils */
            aload 4 /* method */
            aload 10 /* m */
            aload 3 /* declaring */
            invokeinterface javax.lang.model.util.Elements.overrides:(Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/element/TypeElement;)Z
            ifeq 14
        11: .line 252
            aload 0 /* annotationType */
            aload 1 /* elementUtils */
            aload 2 /* typeUtils */
            aload 8 /* directSuperTypeElt */
            checkcast javax.lang.model.element.TypeElement
            aload 10 /* m */
            invokestatic io.vertx.codegen.Helper.resolveMethodAnnotation:(Ljavax/lang/model/type/DeclaredType;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 12 /* annotation */
        start local 12 // javax.lang.model.element.AnnotationMirror annotation
        12: .line 253
            aload 12 /* annotation */
            ifnull 14
        13: .line 254
            aload 12 /* annotation */
            areturn
        end local 12 // javax.lang.model.element.AnnotationMirror annotation
        end local 10 // javax.lang.model.element.ExecutableElement m
        14: .line 250
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        15: .line 258
            aload 0 /* annotationType */
            aload 1 /* elementUtils */
            aload 2 /* typeUtils */
            aload 3 /* declaring */
            aload 4 /* method */
            aload 6 /* directSuperType */
            invokestatic io.vertx.codegen.Helper.isFluent:(Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/ExecutableElement;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
            astore 10 /* annotation */
        start local 10 // javax.lang.model.element.AnnotationMirror annotation
        16: .line 259
            aload 10 /* annotation */
            ifnull 18
        17: .line 260
            aload 10 /* annotation */
            areturn
        end local 10 // javax.lang.model.element.AnnotationMirror annotation
        end local 9 // java.util.List methods
        end local 8 // javax.lang.model.element.Element directSuperTypeElt
        end local 6 // javax.lang.model.type.TypeMirror directSuperType
        18: .line 244
      StackMap locals: javax.lang.model.type.DeclaredType javax.lang.model.util.Elements javax.lang.model.util.Types javax.lang.model.element.TypeElement javax.lang.model.element.ExecutableElement javax.lang.model.type.TypeMirror top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        19: .line 264
            aconst_null
            areturn
        end local 5 // javax.lang.model.type.TypeMirror type
        end local 4 // javax.lang.model.element.ExecutableElement method
        end local 3 // javax.lang.model.element.TypeElement declaring
        end local 2 // javax.lang.model.util.Types typeUtils
        end local 1 // javax.lang.model.util.Elements elementUtils
        end local 0 // javax.lang.model.type.DeclaredType annotationType
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   20     0      annotationType  Ljavax/lang/model/type/DeclaredType;
            0   20     1        elementUtils  Ljavax/lang/model/util/Elements;
            0   20     2           typeUtils  Ljavax/lang/model/util/Types;
            0   20     3           declaring  Ljavax/lang/model/element/TypeElement;
            0   20     4              method  Ljavax/lang/model/element/ExecutableElement;
            0   20     5                type  Ljavax/lang/model/type/TypeMirror;
            2   18     6     directSuperType  Ljavax/lang/model/type/TypeMirror;
            3   18     8  directSuperTypeElt  Ljavax/lang/model/element/Element;
            8   18     9             methods  Ljava/util/List<Ljavax/lang/model/element/ExecutableElement;>;
           10   14    10                   m  Ljavax/lang/model/element/ExecutableElement;
           12   14    12          annotation  Ljavax/lang/model/element/AnnotationMirror;
           16   18    10          annotation  Ljavax/lang/model/element/AnnotationMirror;
    MethodParameters:
                Name  Flags
      annotationType  
      elementUtils    
      typeUtils       
      declaring       
      method          
      type            

  public static javax.lang.model.type.TypeMirror resolveTypeParameter(javax.lang.model.util.Types, javax.lang.model.type.DeclaredType, javax.lang.model.element.TypeParameterElement);
    descriptor: (Ljavax/lang/model/util/Types;Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/element/TypeParameterElement;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // javax.lang.model.util.Types typeUtils
        start local 1 // javax.lang.model.type.DeclaredType subType
        start local 2 // javax.lang.model.element.TypeParameterElement typeParam
         0: .line 279
            aload 0 /* typeUtils */
            aload 2 /* typeParam */
            invokeinterface javax.lang.model.element.TypeParameterElement.getGenericElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            astore 3 /* erased */
        start local 3 // javax.lang.model.type.TypeMirror erased
         1: .line 280
            aload 0 /* typeUtils */
            aload 1 /* subType */
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            astore 4 /* erasedSubType */
        start local 4 // javax.lang.model.type.TypeMirror erasedSubType
         2: .line 281
            aload 0 /* typeUtils */
            aload 3 /* erased */
            aload 4 /* erasedSubType */
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 4
         3: .line 282
            aload 0 /* typeUtils */
            aload 1 /* subType */
            aload 2 /* typeParam */
            invokeinterface javax.lang.model.element.TypeParameterElement.asType:()Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.TypeVariable
            invokeinterface javax.lang.model.type.TypeVariable.asElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.util.Types.asMemberOf:(Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/element/Element;)Ljavax/lang/model/type/TypeMirror;
            areturn
         4: .line 283
      StackMap locals: javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror
      StackMap stack:
            aload 0 /* typeUtils */
            aload 4 /* erasedSubType */
            aload 3 /* erased */
            invokeinterface javax.lang.model.util.Types.isSubtype:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 11
         5: .line 284
            aload 0 /* typeUtils */
            aload 1 /* subType */
            invokeinterface javax.lang.model.util.Types.directSupertypes:(Ljavax/lang/model/type/TypeMirror;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: javax.lang.model.util.Types javax.lang.model.type.DeclaredType javax.lang.model.element.TypeParameterElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 5 /* superType */
        start local 5 // javax.lang.model.type.TypeMirror superType
         7: .line 285
            aload 0 /* typeUtils */
            aload 5 /* superType */
            checkcast javax.lang.model.type.DeclaredType
            aload 2 /* typeParam */
            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 7 /* resolved */
        start local 7 // javax.lang.model.type.TypeMirror resolved
         8: .line 286
            aload 7 /* resolved */
            ifnull 10
         9: .line 287
            aload 7 /* resolved */
            areturn
        end local 7 // javax.lang.model.type.TypeMirror resolved
        end local 5 // javax.lang.model.type.TypeMirror superType
        10: .line 284
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 291
      StackMap locals: javax.lang.model.util.Types javax.lang.model.type.DeclaredType javax.lang.model.element.TypeParameterElement javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror
      StackMap stack:
            aconst_null
            areturn
        end local 4 // javax.lang.model.type.TypeMirror erasedSubType
        end local 3 // javax.lang.model.type.TypeMirror erased
        end local 2 // javax.lang.model.element.TypeParameterElement typeParam
        end local 1 // javax.lang.model.type.DeclaredType subType
        end local 0 // javax.lang.model.util.Types typeUtils
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0      typeUtils  Ljavax/lang/model/util/Types;
            0   12     1        subType  Ljavax/lang/model/type/DeclaredType;
            0   12     2      typeParam  Ljavax/lang/model/element/TypeParameterElement;
            1   12     3         erased  Ljavax/lang/model/type/TypeMirror;
            2   12     4  erasedSubType  Ljavax/lang/model/type/TypeMirror;
            7   10     5      superType  Ljavax/lang/model/type/TypeMirror;
            8   10     7       resolved  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
           Name  Flags
      typeUtils  
      subType    
      typeParam  

  public static <T> java.lang.reflect.Type resolveTypeParameter(java.lang.reflect.Type, java.lang.reflect.TypeVariable<java.lang.Class<T>>);
    descriptor: (Ljava/lang/reflect/Type;Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // java.lang.reflect.Type type
        start local 1 // java.lang.reflect.TypeVariable typeParam
         0: .line 304
            aload 0 /* type */
            instanceof java.lang.Class
            ifeq 15
         1: .line 305
            aload 0 /* type */
            checkcast java.lang.Class
            astore 2 /* classType */
        start local 2 // java.lang.Class classType
         2: .line 306
            aload 2 /* classType */
            invokevirtual java.lang.Class.getTypeParameters:()[Ljava/lang/reflect/TypeVariable;
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            aload 1 /* typeParam */
            invokedynamic test(Ljava/lang/reflect/TypeVariable;)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/Helper.lambda$8(Ljava/lang/reflect/TypeVariable;Ljava/lang/reflect/TypeVariable;)Z (6)
                  (Ljava/lang/reflect/TypeVariable;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 4
         3: .line 307
            aload 1 /* typeParam */
            areturn
         4: .line 309
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* superTypes */
        start local 3 // java.util.List superTypes
         5: .line 310
            aload 2 /* classType */
            invokevirtual java.lang.Class.getGenericSuperclass:()Ljava/lang/reflect/Type;
            ifnull 7
         6: .line 311
            aload 3 /* superTypes */
            aload 2 /* classType */
            invokevirtual java.lang.Class.getGenericSuperclass:()Ljava/lang/reflect/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 313
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* superTypes */
            aload 2 /* classType */
            invokevirtual java.lang.Class.getGenericInterfaces:()[Ljava/lang/reflect/Type;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         8: .line 314
            aload 3 /* superTypes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 13
      StackMap locals: java.lang.reflect.Type java.lang.reflect.TypeVariable java.lang.Class java.util.List top java.util.Iterator
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Type
            astore 4 /* superType */
        start local 4 // java.lang.reflect.Type superType
        10: .line 315
            aload 4 /* superType */
            aload 1 /* typeParam */
            invokestatic io.vertx.codegen.Helper.resolveTypeParameter:(Ljava/lang/reflect/Type;Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
            astore 6 /* resolved */
        start local 6 // java.lang.reflect.Type resolved
        11: .line 316
            aload 6 /* resolved */
            ifnull 13
        12: .line 317
            aload 6 /* resolved */
            areturn
        end local 6 // java.lang.reflect.Type resolved
        end local 4 // java.lang.reflect.Type superType
        13: .line 314
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 3 // java.util.List superTypes
        end local 2 // java.lang.Class classType
        14: .line 320
            goto 31
      StackMap locals: java.lang.reflect.Type java.lang.reflect.TypeVariable
      StackMap stack:
        15: aload 0 /* type */
            instanceof java.lang.reflect.ParameterizedType
            ifeq 30
        16: .line 321
            aload 0 /* type */
            checkcast java.lang.reflect.ParameterizedType
            astore 2 /* parameterizedType */
        start local 2 // java.lang.reflect.ParameterizedType parameterizedType
        17: .line 322
            aload 2 /* parameterizedType */
            invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
            astore 3 /* rawType */
        start local 3 // java.lang.reflect.Type rawType
        18: .line 323
            aload 3 /* rawType */
            aload 1 /* typeParam */
            invokestatic io.vertx.codegen.Helper.resolveTypeParameter:(Ljava/lang/reflect/Type;Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
            astore 4 /* resolvedType */
        start local 4 // java.lang.reflect.Type resolvedType
        19: .line 324
            aload 4 /* resolvedType */
            instanceof java.lang.reflect.TypeVariable
            ifeq 31
        20: .line 325
            aload 4 /* resolvedType */
            checkcast java.lang.reflect.TypeVariable
            invokeinterface java.lang.reflect.TypeVariable.getGenericDeclaration:()Ljava/lang/reflect/GenericDeclaration;
            astore 5 /* owner */
        start local 5 // java.lang.reflect.GenericDeclaration owner
        21: .line 326
            aload 5 /* owner */
            aload 3 /* rawType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 31
        22: .line 327
            aload 5 /* owner */
            invokeinterface java.lang.reflect.GenericDeclaration.getTypeParameters:()[Ljava/lang/reflect/TypeVariable;
            astore 6 /* typeParams */
        start local 6 // java.lang.reflect.TypeVariable[] typeParams
        23: .line 328
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        24: goto 28
        25: .line 329
      StackMap locals: java.lang.reflect.Type java.lang.reflect.TypeVariable java.lang.reflect.ParameterizedType java.lang.reflect.Type java.lang.reflect.Type java.lang.reflect.GenericDeclaration java.lang.reflect.TypeVariable[] int
      StackMap stack:
            aload 6 /* typeParams */
            iload 7 /* i */
            aaload
            aload 4 /* resolvedType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 27
        26: .line 330
            aload 2 /* parameterizedType */
            invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
            iload 7 /* i */
            aaload
            areturn
        27: .line 328
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 7 /* i */
            aload 6 /* typeParams */
            arraylength
            if_icmplt 25
        end local 7 // int i
        end local 6 // java.lang.reflect.TypeVariable[] typeParams
        end local 5 // java.lang.reflect.GenericDeclaration owner
        end local 4 // java.lang.reflect.Type resolvedType
        end local 3 // java.lang.reflect.Type rawType
        end local 2 // java.lang.reflect.ParameterizedType parameterizedType
        29: .line 335
            goto 31
        30: .line 336
      StackMap locals: java.lang.reflect.Type java.lang.reflect.TypeVariable
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Todo "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* type */
            invokeinterface java.lang.reflect.Type.getTypeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* type */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 338
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.reflect.TypeVariable typeParam
        end local 0 // java.lang.reflect.Type type
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   32     0               type  Ljava/lang/reflect/Type;
            0   32     1          typeParam  Ljava/lang/reflect/TypeVariable<Ljava/lang/Class<TT;>;>;
            2   14     2          classType  Ljava/lang/Class<*>;
            5   14     3         superTypes  Ljava/util/List<Ljava/lang/reflect/Type;>;
           10   13     4          superType  Ljava/lang/reflect/Type;
           11   13     6           resolved  Ljava/lang/reflect/Type;
           17   29     2  parameterizedType  Ljava/lang/reflect/ParameterizedType;
           18   29     3            rawType  Ljava/lang/reflect/Type;
           19   29     4       resolvedType  Ljava/lang/reflect/Type;
           21   29     5              owner  Ljava/lang/reflect/GenericDeclaration;
           23   29     6         typeParams  [Ljava/lang/reflect/TypeVariable;
           24   29     7                  i  I
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/reflect/Type;Ljava/lang/reflect/TypeVariable<Ljava/lang/Class<TT;>;>;)Ljava/lang/reflect/Type;
    MethodParameters:
           Name  Flags
      type       
      typeParam  

  public static javax.lang.model.element.Element resolveSignature(javax.lang.model.util.Elements, javax.lang.model.util.Types, javax.lang.model.element.TypeElement, java.lang.String);
    descriptor: (Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;Ljava/lang/String;)Ljavax/lang/model/element/Element;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=13, args_size=4
        start local 0 // javax.lang.model.util.Elements elementUtils
        start local 1 // javax.lang.model.util.Types typeUtils
        start local 2 // javax.lang.model.element.TypeElement declaringElt
        start local 3 // java.lang.String signature
         0: .line 360
            getstatic io.vertx.codegen.Helper.SIGNATURE_PATTERN:Ljava/util/regex/Pattern;
            aload 3 /* signature */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 4 /* signatureMatcher */
        start local 4 // java.util.regex.Matcher signatureMatcher
         1: .line 361
            aload 4 /* signatureMatcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifeq 24
         2: .line 362
            aload 4 /* signatureMatcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 5 /* memberName */
        start local 5 // java.lang.String memberName
         3: .line 363
            aload 3 /* signature */
            iconst_0
            aload 4 /* signatureMatcher */
            invokevirtual java.util.regex.Matcher.start:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* typeName */
        start local 6 // java.lang.String typeName
         4: .line 364
            aload 0 /* elementUtils */
            aload 2 /* declaringElt */
            aload 6 /* typeName */
            invokestatic io.vertx.codegen.Helper.resolveTypeElement:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/element/TypeElement;Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
            astore 7 /* typeElt */
        start local 7 // javax.lang.model.element.TypeElement typeElt
         5: .line 365
            aload 7 /* typeElt */
            ifnull 23
         6: .line 367
            aload 4 /* signatureMatcher */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            ifnull 14
         7: .line 368
            aload 4 /* signatureMatcher */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 9 /* t */
        start local 9 // java.lang.String t
         8: .line 370
            aload 9 /* t */
            invokevirtual java.lang.String.length:()I
            ifne 11
         9: .line 371
            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/Helper.lambda$9(Ljavax/lang/model/element/ExecutableElement;)Z (6)
                  (Ljavax/lang/model/element/ExecutableElement;)Z
            astore 10 /* parametersMatcher */
        start local 10 // java.util.function.Predicate parametersMatcher
        10: .line 372
            goto 12
        end local 10 // java.util.function.Predicate parametersMatcher
        11: .line 373
      StackMap locals: javax.lang.model.util.Elements javax.lang.model.util.Types javax.lang.model.element.TypeElement java.lang.String java.util.regex.Matcher java.lang.String java.lang.String javax.lang.model.element.TypeElement top java.lang.String
      StackMap stack:
            aload 1 /* typeUtils */
            aload 9 /* t */
            ldc "\\s*,\\s*"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic io.vertx.codegen.Helper.parametersMatcher:(Ljavax/lang/model/util/Types;[Ljava/lang/String;)Ljava/util/function/Predicate;
            astore 10 /* parametersMatcher */
        start local 10 // java.util.function.Predicate parametersMatcher
        12: .line 375
      StackMap locals: java.util.function.Predicate
      StackMap stack:
            aload 5 /* memberName */
            aload 10 /* parametersMatcher */
            invokedynamic test(Ljava/lang/String;Ljava/util/function/Predicate;)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/Helper.lambda$10(Ljava/lang/String;Ljava/util/function/Predicate;Ljavax/lang/model/element/Element;)Z (6)
                  (Ljavax/lang/model/element/Element;)Z
            astore 8 /* memberMatcher */
        end local 10 // java.util.function.Predicate parametersMatcher
        end local 9 // java.lang.String t
        start local 8 // java.util.function.Predicate memberMatcher
        13: .line 376
            goto 15
        end local 8 // java.util.function.Predicate memberMatcher
        14: .line 377
      StackMap locals: javax.lang.model.util.Elements javax.lang.model.util.Types javax.lang.model.element.TypeElement java.lang.String java.util.regex.Matcher java.lang.String java.lang.String javax.lang.model.element.TypeElement
      StackMap stack:
            aload 5 /* memberName */
            invokedynamic test(Ljava/lang/String;)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/Helper.lambda$11(Ljava/lang/String;Ljavax/lang/model/element/Element;)Z (6)
                  (Ljavax/lang/model/element/Element;)Z
            astore 8 /* memberMatcher */
        start local 8 // java.util.function.Predicate memberMatcher
        15: .line 382
      StackMap locals: java.util.function.Predicate
      StackMap stack:
            iconst_3
            anewarray javax.lang.model.element.ElementKind
            dup
            iconst_0
            getstatic javax.lang.model.element.ElementKind.FIELD:Ljavax/lang/model/element/ElementKind;
            aastore
            dup
            iconst_1
            getstatic javax.lang.model.element.ElementKind.CONSTRUCTOR:Ljavax/lang/model/element/ElementKind;
            aastore
            dup
            iconst_2
            getstatic javax.lang.model.element.ElementKind.METHOD:Ljavax/lang/model/element/ElementKind;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 22
      StackMap locals: javax.lang.model.util.Elements javax.lang.model.util.Types javax.lang.model.element.TypeElement java.lang.String java.util.regex.Matcher java.lang.String java.lang.String javax.lang.model.element.TypeElement java.util.function.Predicate top java.util.Iterator
      StackMap stack:
        16: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.ElementKind
            astore 9 /* kind */
        start local 9 // javax.lang.model.element.ElementKind kind
        17: .line 383
            aload 0 /* elementUtils */
            aload 7 /* typeElt */
            invokeinterface javax.lang.model.util.Elements.getAllMembers:(Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 21
      StackMap locals: javax.lang.model.util.Elements javax.lang.model.util.Types javax.lang.model.element.TypeElement java.lang.String java.util.regex.Matcher java.lang.String java.lang.String javax.lang.model.element.TypeElement java.util.function.Predicate javax.lang.model.element.ElementKind java.util.Iterator top java.util.Iterator
      StackMap stack:
        18: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.element.Element
            astore 11 /* memberElt */
        start local 11 // javax.lang.model.element.Element memberElt
        19: .line 384
            aload 11 /* memberElt */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            aload 9 /* kind */
            if_acmpne 21
            aload 8 /* memberMatcher */
            aload 11 /* memberElt */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 385
            aload 11 /* memberElt */
            areturn
        end local 11 // javax.lang.model.element.Element memberElt
        21: .line 383
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        end local 9 // javax.lang.model.element.ElementKind kind
        22: .line 382
      StackMap locals: javax.lang.model.util.Elements javax.lang.model.util.Types javax.lang.model.element.TypeElement java.lang.String java.util.regex.Matcher java.lang.String java.lang.String javax.lang.model.element.TypeElement java.util.function.Predicate top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        end local 8 // java.util.function.Predicate memberMatcher
        23: .line 390
      StackMap locals: javax.lang.model.util.Elements javax.lang.model.util.Types javax.lang.model.element.TypeElement java.lang.String java.util.regex.Matcher java.lang.String java.lang.String javax.lang.model.element.TypeElement
      StackMap stack:
            aconst_null
            areturn
        end local 7 // javax.lang.model.element.TypeElement typeElt
        end local 6 // java.lang.String typeName
        end local 5 // java.lang.String memberName
        24: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* elementUtils */
            aload 2 /* declaringElt */
            aload 3 /* signature */
            invokestatic io.vertx.codegen.Helper.resolveTypeElement:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/element/TypeElement;Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
            areturn
        end local 4 // java.util.regex.Matcher signatureMatcher
        end local 3 // java.lang.String signature
        end local 2 // javax.lang.model.element.TypeElement declaringElt
        end local 1 // javax.lang.model.util.Types typeUtils
        end local 0 // javax.lang.model.util.Elements elementUtils
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   25     0       elementUtils  Ljavax/lang/model/util/Elements;
            0   25     1          typeUtils  Ljavax/lang/model/util/Types;
            0   25     2       declaringElt  Ljavax/lang/model/element/TypeElement;
            0   25     3          signature  Ljava/lang/String;
            1   25     4   signatureMatcher  Ljava/util/regex/Matcher;
            3   24     5         memberName  Ljava/lang/String;
            4   24     6           typeName  Ljava/lang/String;
            5   24     7            typeElt  Ljavax/lang/model/element/TypeElement;
           13   14     8      memberMatcher  Ljava/util/function/Predicate<-Ljavax/lang/model/element/Element;>;
           15   23     8      memberMatcher  Ljava/util/function/Predicate<-Ljavax/lang/model/element/Element;>;
            8   13     9                  t  Ljava/lang/String;
           10   11    10  parametersMatcher  Ljava/util/function/Predicate<Ljavax/lang/model/element/ExecutableElement;>;
           12   13    10  parametersMatcher  Ljava/util/function/Predicate<Ljavax/lang/model/element/ExecutableElement;>;
           17   22     9               kind  Ljavax/lang/model/element/ElementKind;
           19   21    11          memberElt  Ljavax/lang/model/element/Element;
    MethodParameters:
              Name  Flags
      elementUtils  
      typeUtils     
      declaringElt  
      signature     

  private static javax.lang.model.element.TypeElement resolveTypeElement(javax.lang.model.util.Elements, javax.lang.model.element.TypeElement, java.lang.String);
    descriptor: (Ljavax/lang/model/util/Elements;Ljavax/lang/model/element/TypeElement;Ljava/lang/String;)Ljavax/lang/model/element/TypeElement;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // javax.lang.model.util.Elements elementUtils
        start local 1 // javax.lang.model.element.TypeElement declaringElt
        start local 2 // java.lang.String typeName
         0: .line 398
            aload 2 /* typeName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 3
         1: .line 399
            aload 1 /* declaringElt */
            astore 3 /* resolvedElt */
        start local 3 // javax.lang.model.element.TypeElement resolvedElt
         2: .line 400
            goto 10
        end local 3 // javax.lang.model.element.TypeElement resolvedElt
         3: .line 401
      StackMap locals:
      StackMap stack:
            aload 2 /* typeName */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_m1
            if_icmpne 9
         4: .line 402
            aload 0 /* elementUtils */
            new java.lang.StringBuilder
            dup
            ldc "java.lang."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 3 /* resolvedElt */
        start local 3 // javax.lang.model.element.TypeElement resolvedElt
         5: .line 403
            aload 3 /* resolvedElt */
            ifnonnull 10
         6: .line 404
            aload 0 /* elementUtils */
            aload 1 /* declaringElt */
            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;
            astore 4 /* packageName */
        start local 4 // java.lang.String packageName
         7: .line 405
            aload 0 /* elementUtils */
            new java.lang.StringBuilder
            dup
            aload 4 /* packageName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 3 /* resolvedElt */
        end local 4 // java.lang.String packageName
         8: .line 407
            goto 10
        end local 3 // javax.lang.model.element.TypeElement resolvedElt
         9: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* elementUtils */
            aload 2 /* typeName */
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 3 /* resolvedElt */
        start local 3 // javax.lang.model.element.TypeElement resolvedElt
        10: .line 411
      StackMap locals: javax.lang.model.element.TypeElement
      StackMap stack:
            aload 3 /* resolvedElt */
            areturn
        end local 3 // javax.lang.model.element.TypeElement resolvedElt
        end local 2 // java.lang.String typeName
        end local 1 // javax.lang.model.element.TypeElement declaringElt
        end local 0 // javax.lang.model.util.Elements elementUtils
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0  elementUtils  Ljavax/lang/model/util/Elements;
            0   11     1  declaringElt  Ljavax/lang/model/element/TypeElement;
            0   11     2      typeName  Ljava/lang/String;
            2    3     3   resolvedElt  Ljavax/lang/model/element/TypeElement;
            5    9     3   resolvedElt  Ljavax/lang/model/element/TypeElement;
           10   11     3   resolvedElt  Ljavax/lang/model/element/TypeElement;
            7    8     4   packageName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      elementUtils  
      declaringElt  
      typeName      

  private static boolean matchesConstructor(javax.lang.model.element.Element, java.lang.String, java.util.function.Predicate<javax.lang.model.element.ExecutableElement>);
    descriptor: (Ljavax/lang/model/element/Element;Ljava/lang/String;Ljava/util/function/Predicate;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // javax.lang.model.element.Element elt
        start local 1 // java.lang.String memberName
        start local 2 // java.util.function.Predicate parametersMatcher
         0: .line 415
            aload 0 /* elt */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.CONSTRUCTOR:Ljavax/lang/model/element/ElementKind;
            if_acmpne 5
         1: .line 416
            aload 0 /* elt */
            checkcast javax.lang.model.element.ExecutableElement
            astore 3 /* constructorElt */
        start local 3 // javax.lang.model.element.ExecutableElement constructorElt
         2: .line 417
            aload 3 /* constructorElt */
            invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 4 /* typeElt */
        start local 4 // javax.lang.model.element.TypeElement typeElt
         3: .line 418
            aload 4 /* typeElt */
            invokeinterface javax.lang.model.element.TypeElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aload 1 /* memberName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
            aload 2 /* parametersMatcher */
            aload 3 /* constructorElt */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            ifeq 4
            iconst_1
            ireturn
      StackMap locals: javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement
      StackMap stack:
         4: iconst_0
            ireturn
        end local 4 // javax.lang.model.element.TypeElement typeElt
        end local 3 // javax.lang.model.element.ExecutableElement constructorElt
         5: .line 420
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.util.function.Predicate parametersMatcher
        end local 1 // java.lang.String memberName
        end local 0 // javax.lang.model.element.Element elt
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0                elt  Ljavax/lang/model/element/Element;
            0    6     1         memberName  Ljava/lang/String;
            0    6     2  parametersMatcher  Ljava/util/function/Predicate<Ljavax/lang/model/element/ExecutableElement;>;
            2    5     3     constructorElt  Ljavax/lang/model/element/ExecutableElement;
            3    5     4            typeElt  Ljavax/lang/model/element/TypeElement;
    Signature: (Ljavax/lang/model/element/Element;Ljava/lang/String;Ljava/util/function/Predicate<Ljavax/lang/model/element/ExecutableElement;>;)Z
    MethodParameters:
                   Name  Flags
      elt                
      memberName         
      parametersMatcher  

  private static boolean matchesMethod(javax.lang.model.element.Element, java.lang.String, java.util.function.Predicate<javax.lang.model.element.ExecutableElement>);
    descriptor: (Ljavax/lang/model/element/Element;Ljava/lang/String;Ljava/util/function/Predicate;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // javax.lang.model.element.Element elt
        start local 1 // java.lang.String memberName
        start local 2 // java.util.function.Predicate parametersMatcher
         0: .line 424
            aload 0 /* elt */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.METHOD:Ljavax/lang/model/element/ElementKind;
            if_acmpne 4
         1: .line 425
            aload 0 /* elt */
            checkcast javax.lang.model.element.ExecutableElement
            astore 3 /* methodElt */
        start local 3 // javax.lang.model.element.ExecutableElement methodElt
         2: .line 426
            aload 3 /* methodElt */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aload 1 /* memberName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
            aload 2 /* parametersMatcher */
            aload 3 /* methodElt */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            ifeq 3
            iconst_1
            ireturn
      StackMap locals: javax.lang.model.element.ExecutableElement
      StackMap stack:
         3: iconst_0
            ireturn
        end local 3 // javax.lang.model.element.ExecutableElement methodElt
         4: .line 428
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.util.function.Predicate parametersMatcher
        end local 1 // java.lang.String memberName
        end local 0 // javax.lang.model.element.Element elt
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0                elt  Ljavax/lang/model/element/Element;
            0    5     1         memberName  Ljava/lang/String;
            0    5     2  parametersMatcher  Ljava/util/function/Predicate<Ljavax/lang/model/element/ExecutableElement;>;
            2    4     3          methodElt  Ljavax/lang/model/element/ExecutableElement;
    Signature: (Ljavax/lang/model/element/Element;Ljava/lang/String;Ljava/util/function/Predicate<Ljavax/lang/model/element/ExecutableElement;>;)Z
    MethodParameters:
                   Name  Flags
      elt                
      memberName         
      parametersMatcher  

  private static boolean matchesField(javax.lang.model.element.Element, java.lang.String);
    descriptor: (Ljavax/lang/model/element/Element;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.lang.model.element.Element elt
        start local 1 // java.lang.String memberName
         0: .line 432
            aload 0 /* elt */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.FIELD:Ljavax/lang/model/element/ElementKind;
            if_acmpne 1
            aload 0 /* elt */
            invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aload 1 /* memberName */
            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 // java.lang.String memberName
        end local 0 // javax.lang.model.element.Element elt
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0         elt  Ljavax/lang/model/element/Element;
            0    2     1  memberName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      elt         
      memberName  

  private static java.util.function.Predicate<javax.lang.model.element.ExecutableElement> parametersMatcher(javax.lang.model.util.Types, java.lang.String[]);
    descriptor: (Ljavax/lang/model/util/Types;[Ljava/lang/String;)Ljava/util/function/Predicate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.lang.model.util.Types typeUtils
        start local 1 // java.lang.String[] parameterSignature
         0: .line 444
            aload 1 /* parameterSignature */
            aload 0 /* typeUtils */
            invokedynamic test([Ljava/lang/String;Ljavax/lang/model/util/Types;)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/Helper.lambda$14([Ljava/lang/String;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/ExecutableElement;)Z (6)
                  (Ljavax/lang/model/element/ExecutableElement;)Z
            areturn
        end local 1 // java.lang.String[] parameterSignature
        end local 0 // javax.lang.model.util.Types typeUtils
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0           typeUtils  Ljavax/lang/model/util/Types;
            0    1     1  parameterSignature  [Ljava/lang/String;
    Signature: (Ljavax/lang/model/util/Types;[Ljava/lang/String;)Ljava/util/function/Predicate<Ljavax/lang/model/element/ExecutableElement;>;
    MethodParameters:
                    Name  Flags
      typeUtils           
      parameterSignature  

  public static javax.lang.model.element.TypeElement getElementTypeOf(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // javax.lang.model.element.Element elt
         0: .line 472
            aload 0 /* elt */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            astore 1 /* kind */
        start local 1 // javax.lang.model.element.ElementKind kind
         1: .line 473
            aload 1 /* kind */
            getstatic javax.lang.model.element.ElementKind.CLASS:Ljavax/lang/model/element/ElementKind;
            if_acmpeq 2
            aload 1 /* kind */
            getstatic javax.lang.model.element.ElementKind.INTERFACE:Ljavax/lang/model/element/ElementKind;
            if_acmpeq 2
            aload 1 /* kind */
            getstatic javax.lang.model.element.ElementKind.ENUM:Ljavax/lang/model/element/ElementKind;
            if_acmpne 3
         2: .line 474
      StackMap locals: javax.lang.model.element.ElementKind
      StackMap stack:
            aload 0 /* elt */
            checkcast javax.lang.model.element.TypeElement
            areturn
         3: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* elt */
            invokeinterface javax.lang.model.element.Element.getEnclosingElement:()Ljavax/lang/model/element/Element;
            astore 2 /* enclosingElt */
        start local 2 // javax.lang.model.element.Element enclosingElt
         4: .line 477
            aload 2 /* enclosingElt */
            ifnull 6
         5: .line 478
            aload 2 /* enclosingElt */
            invokestatic io.vertx.codegen.Helper.getElementTypeOf:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement;
            areturn
         6: .line 480
      StackMap locals: javax.lang.model.element.Element
      StackMap stack:
            aconst_null
            areturn
        end local 2 // javax.lang.model.element.Element enclosingElt
        end local 1 // javax.lang.model.element.ElementKind kind
        end local 0 // javax.lang.model.element.Element elt
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0           elt  Ljavax/lang/model/element/Element;
            1    7     1          kind  Ljavax/lang/model/element/ElementKind;
            4    7     2  enclosingElt  Ljavax/lang/model/element/Element;
    MethodParameters:
      Name  Flags
      elt   

  public static java.lang.String normalizeWhitespaces(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String s
         0: .line 493
            getstatic io.vertx.codegen.Helper.WHITESPACE_CLUSTER_PATTERN:Ljava/util/regex/Pattern;
            aload 0 /* s */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 1 /* matcher */
        start local 1 // java.util.regex.Matcher matcher
         1: .line 494
            aload 1 /* matcher */
            ldc " "
            invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            areturn
        end local 1 // java.util.regex.Matcher matcher
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0        s  Ljava/lang/String;
            1    2     1  matcher  Ljava/util/regex/Matcher;
    MethodParameters:
      Name  Flags
      s     

  public static java.util.Set<javax.lang.model.type.DeclaredType> resolveAncestorTypes(javax.lang.model.element.TypeElement, boolean, boolean);
    descriptor: (Ljavax/lang/model/element/TypeElement;ZZ)Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // javax.lang.model.element.TypeElement typeElt
        start local 1 // boolean withSuper
        start local 2 // boolean withInterfaces
         0: .line 504
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 3 /* ancestors */
        start local 3 // java.util.Set ancestors
         1: .line 505
            aload 0 /* typeElt */
            aload 3 /* ancestors */
            iload 1 /* withSuper */
            iload 2 /* withInterfaces */
            invokestatic io.vertx.codegen.Helper.resolveAncestorTypes:(Ljavax/lang/model/element/TypeElement;Ljava/util/Set;ZZ)V
         2: .line 506
            aload 3 /* ancestors */
            areturn
        end local 3 // java.util.Set ancestors
        end local 2 // boolean withInterfaces
        end local 1 // boolean withSuper
        end local 0 // javax.lang.model.element.TypeElement typeElt
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0         typeElt  Ljavax/lang/model/element/TypeElement;
            0    3     1       withSuper  Z
            0    3     2  withInterfaces  Z
            1    3     3       ancestors  Ljava/util/Set<Ljavax/lang/model/type/DeclaredType;>;
    Signature: (Ljavax/lang/model/element/TypeElement;ZZ)Ljava/util/Set<Ljavax/lang/model/type/DeclaredType;>;
    MethodParameters:
                Name  Flags
      typeElt         
      withSuper       
      withInterfaces  

  private static void resolveAncestorTypes(javax.lang.model.element.TypeElement, java.util.Set<javax.lang.model.type.DeclaredType>, boolean, );
    descriptor: (Ljavax/lang/model/element/TypeElement;Ljava/util/Set;ZZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // javax.lang.model.element.TypeElement typeElt
        start local 1 // java.util.Set ancestors
        start local 2 // boolean withSuper
        start local 3 // boolean withInterfaces
         0: .line 510
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* superTypes */
        start local 4 // java.util.List superTypes
         1: .line 511
            iload 2 /* withSuper */
            ifeq 3
            aload 0 /* typeElt */
            invokeinterface javax.lang.model.element.TypeElement.getSuperclass:()Ljavax/lang/model/type/TypeMirror;
            ifnull 3
         2: .line 512
            aload 4 /* superTypes */
            aload 0 /* typeElt */
            invokeinterface javax.lang.model.element.TypeElement.getSuperclass:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 514
      StackMap locals: java.util.List
      StackMap stack:
            iload 3 /* withInterfaces */
            ifeq 5
         4: .line 515
            aload 4 /* superTypes */
            aload 0 /* typeElt */
            invokeinterface javax.lang.model.element.TypeElement.getInterfaces:()Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         5: .line 517
      StackMap locals:
      StackMap stack:
            aload 4 /* superTypes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 12
      StackMap locals: javax.lang.model.element.TypeElement java.util.Set int int java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            astore 5 /* superType */
        start local 5 // javax.lang.model.type.TypeMirror superType
         7: .line 518
            aload 5 /* superType */
            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 12
         8: .line 519
            aload 5 /* superType */
            checkcast javax.lang.model.type.DeclaredType
            astore 7 /* superDeclaredType */
        start local 7 // javax.lang.model.type.DeclaredType superDeclaredType
         9: .line 520
            aload 1 /* ancestors */
            aload 7 /* superDeclaredType */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 12
        10: .line 521
            aload 1 /* ancestors */
            aload 7 /* superDeclaredType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 522
            aload 7 /* superDeclaredType */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            aload 1 /* ancestors */
            iload 2 /* withSuper */
            iload 3 /* withInterfaces */
            invokestatic io.vertx.codegen.Helper.resolveAncestorTypes:(Ljavax/lang/model/element/TypeElement;Ljava/util/Set;ZZ)V
        end local 7 // javax.lang.model.type.DeclaredType superDeclaredType
        end local 5 // javax.lang.model.type.TypeMirror superType
        12: .line 517
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        13: .line 526
            return
        end local 4 // java.util.List superTypes
        end local 3 // boolean withInterfaces
        end local 2 // boolean withSuper
        end local 1 // java.util.Set ancestors
        end local 0 // javax.lang.model.element.TypeElement typeElt
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0            typeElt  Ljavax/lang/model/element/TypeElement;
            0   14     1          ancestors  Ljava/util/Set<Ljavax/lang/model/type/DeclaredType;>;
            0   14     2          withSuper  Z
            0   14     3     withInterfaces  Z
            1   14     4         superTypes  Ljava/util/List<Ljavax/lang/model/type/TypeMirror;>;
            7   12     5          superType  Ljavax/lang/model/type/TypeMirror;
            9   12     7  superDeclaredType  Ljavax/lang/model/type/DeclaredType;
    Signature: (Ljavax/lang/model/element/TypeElement;Ljava/util/Set<Ljavax/lang/model/type/DeclaredType;>;ZZ)V
    MethodParameters:
                Name  Flags
      typeElt         
      ancestors       
      withSuper       
      withInterfaces  

  static void checkUnderModule(io.vertx.codegen.Model, java.lang.String);
    descriptor: (Lio/vertx/codegen/Model;Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.vertx.codegen.Model model
        start local 1 // java.lang.String annotation
         0: .line 529
            aload 0 /* model */
            invokeinterface io.vertx.codegen.Model.getModule:()Lio/vertx/codegen/ModuleInfo;
            ifnonnull 5
         1: .line 530
            new io.vertx.codegen.GenException
            dup
            aload 0 /* model */
            invokeinterface io.vertx.codegen.Model.getElement:()Ljavax/lang/model/element/Element;
            new java.lang.StringBuilder
            dup
            ldc "Declaration annotated with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* annotation */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " must be under a package annotated"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 531
            ldc "with @ModuleGen. Check that the package '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* model */
            invokeinterface io.vertx.codegen.Model.getFqn:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 532
            ldc "' or a parent package contains a 'package-info.java' using the @ModuleGen annotation"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 530
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
         5: .line 534
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String annotation
        end local 0 // io.vertx.codegen.Model model
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0       model  Lio/vertx/codegen/Model;
            0    6     1  annotation  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      model       
      annotation  

  static void ensureParentDir(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.File f
         0: .line 537
            aload 0 /* f */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            invokevirtual java.io.File.exists:()Z
            ifne 2
         1: .line 538
            aload 0 /* f */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            invokevirtual java.io.File.mkdirs:()Z
            pop
         2: .line 540
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.File f
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     f  Ljava/io/File;
    MethodParameters:
      Name  Flags
      f     

  static java.lang.String toString(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.lang.model.type.TypeMirror mirror
         0: .line 549
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buffer */
        start local 1 // java.lang.StringBuilder buffer
         1: .line 550
            aload 0 /* mirror */
            aload 1 /* buffer */
            invokestatic io.vertx.codegen.Helper.toString:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/StringBuilder;)V
         2: .line 551
            aload 1 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buffer
        end local 0 // javax.lang.model.type.TypeMirror mirror
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  mirror  Ljavax/lang/model/type/TypeMirror;
            1    3     1  buffer  Ljava/lang/StringBuilder;
    MethodParameters:
        Name  Flags
      mirror  

  static void toString(javax.lang.model.type.TypeMirror, java.lang.StringBuilder);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljava/lang/StringBuilder;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // javax.lang.model.type.TypeMirror mirror
        start local 1 // java.lang.StringBuilder buffer
         0: .line 561
            invokestatic io.vertx.codegen.Helper.$SWITCH_TABLE$javax$lang$model$type$TypeKind:()[I
            aload 0 /* mirror */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iaload
            tableswitch { // 1 - 16
                    1: 37
                    2: 37
                    3: 37
                    4: 37
                    5: 37
                    6: 37
                    7: 37
                    8: 37
                    9: 44
                   10: 44
                   11: 44
                   12: 40
                   13: 1
                   14: 44
                   15: 26
                   16: 16
              default: 44
          }
         1: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* mirror */
            checkcast javax.lang.model.type.DeclaredType
            astore 2 /* dt */
        start local 2 // javax.lang.model.type.DeclaredType dt
         2: .line 564
            aload 2 /* dt */
            invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 3 /* elt */
        start local 3 // javax.lang.model.element.TypeElement elt
         3: .line 565
            aload 1 /* buffer */
            aload 3 /* elt */
            invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 566
            aload 2 /* dt */
            invokeinterface javax.lang.model.type.DeclaredType.getTypeArguments:()Ljava/util/List;
            astore 4 /* args */
        start local 4 // java.util.List args
         5: .line 567
            aload 4 /* args */
            invokeinterface java.util.List.size:()I
            ifle 45
         6: .line 568
            aload 1 /* buffer */
            ldc "<"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 569
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 13
         9: .line 570
      StackMap locals: javax.lang.model.type.TypeMirror java.lang.StringBuilder javax.lang.model.type.DeclaredType javax.lang.model.element.TypeElement java.util.List int
      StackMap stack:
            iload 5 /* i */
            ifle 11
        10: .line 571
            aload 1 /* buffer */
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 573
      StackMap locals:
      StackMap stack:
            aload 4 /* args */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            aload 1 /* buffer */
            invokestatic io.vertx.codegen.Helper.toString:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/StringBuilder;)V
        12: .line 569
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            aload 4 /* args */
            invokeinterface java.util.List.size:()I
            if_icmplt 9
        end local 5 // int i
        14: .line 575
            aload 1 /* buffer */
            ldc ">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 577
            goto 45
        end local 4 // java.util.List args
        end local 3 // javax.lang.model.element.TypeElement elt
        end local 2 // javax.lang.model.type.DeclaredType dt
        16: .line 580
      StackMap locals: javax.lang.model.type.TypeMirror java.lang.StringBuilder
      StackMap stack:
            aload 0 /* mirror */
            checkcast javax.lang.model.type.WildcardType
            astore 2 /* wt */
        start local 2 // javax.lang.model.type.WildcardType wt
        17: .line 581
            aload 1 /* buffer */
            ldc "?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 582
            aload 2 /* wt */
            invokeinterface javax.lang.model.type.WildcardType.getSuperBound:()Ljavax/lang/model/type/TypeMirror;
            ifnull 22
        19: .line 583
            aload 1 /* buffer */
            ldc " super "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 584
            aload 2 /* wt */
            invokeinterface javax.lang.model.type.WildcardType.getSuperBound:()Ljavax/lang/model/type/TypeMirror;
            aload 1 /* buffer */
            invokestatic io.vertx.codegen.Helper.toString:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/StringBuilder;)V
        21: .line 585
            goto 45
      StackMap locals: javax.lang.model.type.WildcardType
      StackMap stack:
        22: aload 2 /* wt */
            invokeinterface javax.lang.model.type.WildcardType.getExtendsBound:()Ljavax/lang/model/type/TypeMirror;
            ifnull 45
        23: .line 586
            aload 1 /* buffer */
            ldc " extends "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 587
            aload 2 /* wt */
            invokeinterface javax.lang.model.type.WildcardType.getExtendsBound:()Ljavax/lang/model/type/TypeMirror;
            aload 1 /* buffer */
            invokestatic io.vertx.codegen.Helper.toString:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/StringBuilder;)V
        25: .line 589
            goto 45
        end local 2 // javax.lang.model.type.WildcardType wt
        26: .line 592
      StackMap locals:
      StackMap stack:
            aload 0 /* mirror */
            checkcast javax.lang.model.type.TypeVariable
            astore 2 /* tv */
        start local 2 // javax.lang.model.type.TypeVariable tv
        27: .line 593
            aload 2 /* tv */
            invokeinterface javax.lang.model.type.TypeVariable.asElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeParameterElement
            astore 3 /* elt */
        start local 3 // javax.lang.model.element.TypeParameterElement elt
        28: .line 594
            aload 1 /* buffer */
            aload 3 /* elt */
            invokeinterface javax.lang.model.element.TypeParameterElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 595
            aload 2 /* tv */
            invokeinterface javax.lang.model.type.TypeVariable.getUpperBound:()Ljavax/lang/model/type/TypeMirror;
            ifnull 33
            aload 2 /* tv */
            invokeinterface javax.lang.model.type.TypeVariable.getUpperBound:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            ldc "java.lang.Object"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 33
        30: .line 596
            aload 1 /* buffer */
            ldc " extends "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        31: .line 597
            aload 2 /* tv */
            invokeinterface javax.lang.model.type.TypeVariable.getUpperBound:()Ljavax/lang/model/type/TypeMirror;
            aload 1 /* buffer */
            invokestatic io.vertx.codegen.Helper.toString:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/StringBuilder;)V
        32: .line 598
            goto 45
      StackMap locals: javax.lang.model.type.TypeVariable javax.lang.model.element.TypeParameterElement
      StackMap stack:
        33: aload 2 /* tv */
            invokeinterface javax.lang.model.type.TypeVariable.getLowerBound:()Ljavax/lang/model/type/TypeMirror;
            ifnull 45
            aload 2 /* tv */
            invokeinterface javax.lang.model.type.TypeVariable.getLowerBound:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.NULL:Ljavax/lang/model/type/TypeKind;
            if_acmpeq 45
        34: .line 599
            aload 1 /* buffer */
            ldc " super "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        35: .line 600
            aload 2 /* tv */
            invokeinterface javax.lang.model.type.TypeVariable.getUpperBound:()Ljavax/lang/model/type/TypeMirror;
            aload 1 /* buffer */
            invokestatic io.vertx.codegen.Helper.toString:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/StringBuilder;)V
        36: .line 602
            goto 45
        end local 3 // javax.lang.model.element.TypeParameterElement elt
        end local 2 // javax.lang.model.type.TypeVariable tv
        37: .line 612
      StackMap locals:
      StackMap stack:
            aload 0 /* mirror */
            checkcast javax.lang.model.type.PrimitiveType
            astore 2 /* pm */
        start local 2 // javax.lang.model.type.PrimitiveType pm
        38: .line 613
            aload 1 /* buffer */
            aload 2 /* pm */
            invokeinterface javax.lang.model.type.PrimitiveType.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.name:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        39: .line 614
            goto 45
        end local 2 // javax.lang.model.type.PrimitiveType pm
        40: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* mirror */
            checkcast javax.lang.model.type.ArrayType
            astore 2 /* at */
        start local 2 // javax.lang.model.type.ArrayType at
        41: .line 618
            aload 2 /* at */
            invokeinterface javax.lang.model.type.ArrayType.getComponentType:()Ljavax/lang/model/type/TypeMirror;
            aload 1 /* buffer */
            invokestatic io.vertx.codegen.Helper.toString:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/StringBuilder;)V
        42: .line 619
            aload 1 /* buffer */
            ldc "[]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        43: .line 620
            goto 45
        end local 2 // javax.lang.model.type.ArrayType at
        44: .line 623
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "todo "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* mirror */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* mirror */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        45: .line 625
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.StringBuilder buffer
        end local 0 // javax.lang.model.type.TypeMirror mirror
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   46     0  mirror  Ljavax/lang/model/type/TypeMirror;
            0   46     1  buffer  Ljava/lang/StringBuilder;
            2   16     2      dt  Ljavax/lang/model/type/DeclaredType;
            3   16     3     elt  Ljavax/lang/model/element/TypeElement;
            5   16     4    args  Ljava/util/List<+Ljavax/lang/model/type/TypeMirror;>;
            8   14     5       i  I
           17   26     2      wt  Ljavax/lang/model/type/WildcardType;
           27   37     2      tv  Ljavax/lang/model/type/TypeVariable;
           28   37     3     elt  Ljavax/lang/model/element/TypeParameterElement;
           38   40     2      pm  Ljavax/lang/model/type/PrimitiveType;
           41   44     2      at  Ljavax/lang/model/type/ArrayType;
    MethodParameters:
        Name  Flags
      mirror  
      buffer  

  public static java.lang.reflect.Method getReflectMethod(javax.annotation.processing.ProcessingEnvironment, javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/reflect/Method;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.annotation.processing.ProcessingEnvironment env
        start local 1 // javax.lang.model.element.ExecutableElement modelMethod
         0: .line 631
            getstatic io.vertx.codegen.CodeGen.loaderMap:Ljava/util/Map;
            aload 0 /* env */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 2 /* loader */
        start local 2 // java.lang.ClassLoader loader
         1: .line 632
            aload 2 /* loader */
            ifnull 3
         2: .line 633
            aload 2 /* loader */
            aload 1 /* modelMethod */
            invokestatic io.vertx.codegen.Helper.getReflectMethod:(Ljava/lang/ClassLoader;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/reflect/Method;
            areturn
         3: .line 635
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.ClassLoader loader
        end local 1 // javax.lang.model.element.ExecutableElement modelMethod
        end local 0 // javax.annotation.processing.ProcessingEnvironment env
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0          env  Ljavax/annotation/processing/ProcessingEnvironment;
            0    4     1  modelMethod  Ljavax/lang/model/element/ExecutableElement;
            1    4     2       loader  Ljava/lang/ClassLoader;
    MethodParameters:
             Name  Flags
      env          
      modelMethod  

  public static java.lang.reflect.Method getReflectMethod(java.lang.ClassLoader, javax.lang.model.element.ExecutableElement);
    descriptor: (Ljava/lang/ClassLoader;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/reflect/Method;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=14, args_size=2
        start local 0 // java.lang.ClassLoader loader
        start local 1 // javax.lang.model.element.ExecutableElement modelMethod
         0: .line 646
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
            checkcast javax.lang.model.element.TypeElement
            astore 2 /* typeElt */
        start local 2 // javax.lang.model.element.TypeElement typeElt
         1: .line 647
            aconst_null
            astore 3 /* method */
        start local 3 // java.lang.reflect.Method method
         2: .line 649
            aload 0 /* loader */
            aload 2 /* typeElt */
            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.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         3: .line 650
            new java.lang.StringBuilder
            dup
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/CharSequence;)V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuilder sb
         4: .line 651
            aload 5 /* sb */
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 652
            aload 1 /* modelMethod */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            astore 6 /* params */
        start local 6 // java.util.List params
         6: .line 653
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 13
         8: .line 654
      StackMap locals: java.lang.ClassLoader javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement java.lang.reflect.Method java.lang.Class java.lang.StringBuilder java.util.List int
      StackMap stack:
            iload 7 /* i */
            ifle 10
         9: .line 655
            aload 5 /* sb */
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 657
      StackMap locals:
      StackMap stack:
            aload 6 /* params */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.element.VariableElement
            astore 8 /* param */
        start local 8 // javax.lang.model.element.VariableElement param
        11: .line 658
            aload 8 /* param */
            invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 5 /* sb */
            invokestatic io.vertx.codegen.Helper.toString:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/StringBuilder;)V
        end local 8 // javax.lang.model.element.VariableElement param
        12: .line 653
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* i */
            aload 6 /* params */
            invokeinterface java.util.List.size:()I
            if_icmplt 8
        end local 7 // int i
        14: .line 660
            aload 5 /* sb */
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 661
            aload 5 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* s */
        start local 7 // java.lang.String s
        16: .line 662
            aload 4 /* clazz */
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 30
      StackMap locals: java.lang.ClassLoader javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement java.lang.reflect.Method java.lang.Class java.lang.StringBuilder java.util.List java.lang.String top int int java.lang.reflect.Method[]
      StackMap stack:
        17: aload 11
            iload 9
            aaload
            astore 8 /* m */
        start local 8 // java.lang.reflect.Method m
        18: .line 663
            aload 8 /* m */
            invokevirtual java.lang.reflect.Method.toGenericString:()Ljava/lang/String;
            astore 12 /* sign */
        start local 12 // java.lang.String sign
        19: .line 664
            aload 12 /* sign */
            bipush 40
            invokevirtual java.lang.String.indexOf:(I)I
            istore 13 /* pos */
        start local 13 // int pos
        20: .line 665
            aload 12 /* sign */
            bipush 46
            iload 13 /* pos */
            invokevirtual java.lang.String.lastIndexOf:(II)I
            iconst_1
            iadd
            istore 13 /* pos */
        21: .line 666
            aload 12 /* sign */
            iload 13 /* pos */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 12 /* sign */
        22: .line 667
            aload 12 /* sign */
            ldc ", "
            ldc ","
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 12 /* sign */
        23: .line 668
            aload 12 /* sign */
            aload 7 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        24: .line 670
            aload 3 /* method */
            ifnull 28
        25: .line 671
            aload 3 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            aload 8 /* m */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 29
        26: .line 672
            aload 8 /* m */
            astore 3 /* method */
        27: .line 674
            goto 29
        28: .line 675
      StackMap locals: java.lang.ClassLoader javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement java.lang.reflect.Method java.lang.Class java.lang.StringBuilder java.util.List java.lang.String java.lang.reflect.Method int int java.lang.reflect.Method[] java.lang.String int
      StackMap stack:
            aload 8 /* m */
            astore 3 /* method */
        end local 13 // int pos
        end local 12 // java.lang.String sign
        end local 8 // java.lang.reflect.Method m
        29: .line 662
      StackMap locals: java.lang.ClassLoader javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement java.lang.reflect.Method java.lang.Class java.lang.StringBuilder java.util.List java.lang.String top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        30: iload 9
            iload 10
            if_icmplt 17
        end local 7 // java.lang.String s
        end local 6 // java.util.List params
        end local 5 // java.lang.StringBuilder sb
        end local 4 // java.lang.Class clazz
        31: .line 679
            goto 33
      StackMap locals: java.lang.ClassLoader javax.lang.model.element.ExecutableElement javax.lang.model.element.TypeElement java.lang.reflect.Method
      StackMap stack: java.lang.ClassNotFoundException
        32: pop
        33: .line 681
      StackMap locals:
      StackMap stack:
            aload 3 /* method */
            areturn
        end local 3 // java.lang.reflect.Method method
        end local 2 // javax.lang.model.element.TypeElement typeElt
        end local 1 // javax.lang.model.element.ExecutableElement modelMethod
        end local 0 // java.lang.ClassLoader loader
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   34     0       loader  Ljava/lang/ClassLoader;
            0   34     1  modelMethod  Ljavax/lang/model/element/ExecutableElement;
            1   34     2      typeElt  Ljavax/lang/model/element/TypeElement;
            2   34     3       method  Ljava/lang/reflect/Method;
            3   31     4        clazz  Ljava/lang/Class<*>;
            4   31     5           sb  Ljava/lang/StringBuilder;
            6   31     6       params  Ljava/util/List<+Ljavax/lang/model/element/VariableElement;>;
            7   14     7            i  I
           11   12     8        param  Ljavax/lang/model/element/VariableElement;
           16   31     7            s  Ljava/lang/String;
           18   29     8            m  Ljava/lang/reflect/Method;
           19   29    12         sign  Ljava/lang/String;
           20   29    13          pos  I
      Exception table:
        from    to  target  type
           2    31      32  Class java.lang.ClassNotFoundException
    MethodParameters:
             Name  Flags
      loader       
      modelMethod  

  public static boolean isJsonifiable(javax.lang.model.util.Elements, javax.lang.model.util.Types, javax.lang.model.element.TypeElement);
    descriptor: (Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/TypeElement;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // javax.lang.model.util.Elements elementUtils
        start local 1 // javax.lang.model.util.Types typeUtils
        start local 2 // javax.lang.model.element.TypeElement propTypeElt
         0: .line 685
            aload 0 /* elementUtils */
            ldc "io.vertx.core.json.JsonObject"
            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 /* jsonType */
        start local 3 // javax.lang.model.type.TypeMirror jsonType
         1: .line 686
            aload 0 /* elementUtils */
         2: .line 687
            aload 2 /* propTypeElt */
         3: .line 686
            invokeinterface javax.lang.model.util.Elements.getAllMembers:(Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
         4: .line 687
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         5: .line 688
            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;
         6: .line 689
            aload 1 /* typeUtils */
            aload 3 /* jsonType */
            invokedynamic test(Ljavax/lang/model/util/Types;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/Helper.lambda$15(Ljavax/lang/model/util/Types;Ljavax/lang/model/type/TypeMirror;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;
         7: .line 690
            invokeinterface java.util.stream.Stream.count:()J
            lconst_0
         8: .line 686
            lcmp
            ifle 9
            iconst_1
            ireturn
      StackMap locals: javax.lang.model.type.TypeMirror
      StackMap stack:
         9: iconst_0
            ireturn
        end local 3 // javax.lang.model.type.TypeMirror jsonType
        end local 2 // javax.lang.model.element.TypeElement propTypeElt
        end local 1 // javax.lang.model.util.Types typeUtils
        end local 0 // javax.lang.model.util.Elements elementUtils
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0  elementUtils  Ljavax/lang/model/util/Elements;
            0   10     1     typeUtils  Ljavax/lang/model/util/Types;
            0   10     2   propTypeElt  Ljavax/lang/model/element/TypeElement;
            1   10     3      jsonType  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
              Name  Flags
      elementUtils  
      typeUtils     
      propTypeElt   

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

  private static java.util.stream.Stream lambda$0(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Element element
         0: .line 52
            aload 0 /* element */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.METHOD:Ljavax/lang/model/element/ElementKind;
            if_acmpne 2
         1: .line 53
            aload 0 /* element */
            checkcast javax.lang.model.element.ExecutableElement
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
            areturn
         2: .line 55
      StackMap locals:
      StackMap stack:
            invokestatic java.util.stream.Stream.empty:()Ljava/util/stream/Stream;
            areturn
        end local 0 // javax.lang.model.element.Element element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  element  Ljavax/lang/model/element/Element;

  private static java.util.stream.Stream lambda$1(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Element element
         0: .line 60
            aload 0 /* element */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.FIELD:Ljavax/lang/model/element/ElementKind;
            if_acmpne 2
         1: .line 61
            aload 0 /* element */
            checkcast javax.lang.model.element.VariableElement
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
            areturn
         2: .line 63
      StackMap locals:
      StackMap stack:
            invokestatic java.util.stream.Stream.empty:()Ljava/util/stream/Stream;
            areturn
        end local 0 // javax.lang.model.element.Element element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  element  Ljavax/lang/model/element/Element;

  private static java.util.stream.Stream lambda$2(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Element element
         0: .line 82
            aload 0 /* element */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.METHOD:Ljavax/lang/model/element/ElementKind;
            if_acmpne 2
         1: .line 83
            aload 0 /* element */
            checkcast javax.lang.model.element.ExecutableElement
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
            areturn
         2: .line 85
      StackMap locals:
      StackMap stack:
            invokestatic java.util.stream.Stream.empty:()Ljava/util/stream/Stream;
            areturn
        end local 0 // javax.lang.model.element.Element element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  element  Ljavax/lang/model/element/Element;

  private static java.util.stream.Stream lambda$3(java.lang.Class, java.lang.Object);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object o
         0: .line 69
            aload 0
            aload 1 /* o */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 70
            aload 0
            aload 1 /* o */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
            areturn
         2: .line 72
      StackMap locals:
      StackMap stack:
            invokestatic java.util.stream.Stream.empty:()Ljava/util/stream/Stream;
            areturn
        end local 1 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     o  Ljava/lang/Object;

  private static java.util.stream.Stream lambda$4(java.lang.Class, java.lang.Object);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object o
         0: .line 78
            aload 0
            aload 1 /* o */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
            areturn
        end local 1 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     o  Ljava/lang/Object;

  private static boolean lambda$5(javax.lang.model.util.Types, javax.lang.model.type.DeclaredType, javax.lang.model.element.AnnotationMirror);
    descriptor: (Ljavax/lang/model/util/Types;Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/element/AnnotationMirror;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // javax.lang.model.element.AnnotationMirror mirror
         0: .line 234
            aload 0
            aload 2 /* mirror */
            invokeinterface javax.lang.model.element.AnnotationMirror.getAnnotationType:()Ljavax/lang/model/type/DeclaredType;
            aload 1
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ireturn
        end local 2 // javax.lang.model.element.AnnotationMirror mirror
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     2  mirror  Ljavax/lang/model/element/AnnotationMirror;

  private static boolean lambda$6(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Element member
         0: .line 248
            aload 0 /* member */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.METHOD:Ljavax/lang/model/element/ElementKind;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // javax.lang.model.element.Element member
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  member  Ljavax/lang/model/element/Element;

  private static javax.lang.model.element.ExecutableElement lambda$7(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/ExecutableElement;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Element member
         0: .line 248
            aload 0 /* member */
            checkcast javax.lang.model.element.ExecutableElement
            areturn
        end local 0 // javax.lang.model.element.Element member
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  member  Ljavax/lang/model/element/Element;

  private static boolean lambda$8(java.lang.reflect.TypeVariable, java.lang.reflect.TypeVariable);
    descriptor: (Ljava/lang/reflect/TypeVariable;Ljava/lang/reflect/TypeVariable;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.reflect.TypeVariable tp
         0: .line 306
            aload 1 /* tp */
            aload 0
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.reflect.TypeVariable tp
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    tp  Ljava/lang/reflect/TypeVariable<Ljava/lang/Class<Ljava/lang/Object;>;>;

  private static boolean lambda$9(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.lang.model.element.ExecutableElement exeElt
         0: .line 371
            aload 0 /* exeElt */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ireturn
        end local 0 // javax.lang.model.element.ExecutableElement exeElt
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  exeElt  Ljavax/lang/model/element/ExecutableElement;

  private static boolean lambda$10(java.lang.String, java.util.function.Predicate, javax.lang.model.element.Element);
    descriptor: (Ljava/lang/String;Ljava/util/function/Predicate;Ljavax/lang/model/element/Element;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // javax.lang.model.element.Element elt
         0: .line 375
            aload 2 /* elt */
            aload 0
            aload 1
            invokestatic io.vertx.codegen.Helper.matchesConstructor:(Ljavax/lang/model/element/Element;Ljava/lang/String;Ljava/util/function/Predicate;)Z
            ifne 1
            aload 2 /* elt */
            aload 0
            aload 1
            invokestatic io.vertx.codegen.Helper.matchesMethod:(Ljavax/lang/model/element/Element;Ljava/lang/String;Ljava/util/function/Predicate;)Z
            ifne 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
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     2   elt  Ljavax/lang/model/element/Element;

  private static boolean lambda$11(java.lang.String, javax.lang.model.element.Element);
    descriptor: (Ljava/lang/String;Ljavax/lang/model/element/Element;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // javax.lang.model.element.Element elt
         0: .line 377
            aload 1 /* elt */
            aload 0
            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/Helper.lambda$12(Ljavax/lang/model/element/ExecutableElement;)Z (6)
                  (Ljavax/lang/model/element/ExecutableElement;)Z
            invokestatic io.vertx.codegen.Helper.matchesConstructor:(Ljavax/lang/model/element/Element;Ljava/lang/String;Ljava/util/function/Predicate;)Z
            ifne 3
         1: .line 378
            aload 1 /* elt */
            aload 0
            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/Helper.lambda$13(Ljavax/lang/model/element/ExecutableElement;)Z (6)
                  (Ljavax/lang/model/element/ExecutableElement;)Z
            invokestatic io.vertx.codegen.Helper.matchesMethod:(Ljavax/lang/model/element/Element;Ljava/lang/String;Ljava/util/function/Predicate;)Z
            ifne 3
         2: .line 379
            aload 1 /* elt */
            aload 0
            invokestatic io.vertx.codegen.Helper.matchesField:(Ljavax/lang/model/element/Element;Ljava/lang/String;)Z
            ifne 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 1 // javax.lang.model.element.Element elt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     1   elt  Ljavax/lang/model/element/Element;

  private static boolean lambda$14(java.lang.String[], javax.lang.model.util.Types, javax.lang.model.element.ExecutableElement);
    descriptor: ([Ljava/lang/String;Ljavax/lang/model/util/Types;Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=8, args_size=3
        start local 2 // javax.lang.model.element.ExecutableElement exeElt
         0: .line 445
            aload 2 /* exeElt */
            invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 0
            arraylength
            if_icmpne 14
         1: .line 446
            aload 2 /* exeElt */
            invokeinterface javax.lang.model.element.ExecutableElement.asType:()Ljavax/lang/model/type/TypeMirror;
            astore 3 /* tm2 */
        start local 3 // javax.lang.model.type.TypeMirror tm2
         2: .line 447
            aload 1
            aload 3 /* tm2 */
            invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
            checkcast javax.lang.model.type.ExecutableType
            astore 4 /* tm3 */
        start local 4 // javax.lang.model.type.ExecutableType tm3
         3: .line 448
            iconst_0
            istore 5 /* j */
        start local 5 // int j
         4: goto 12
         5: .line 449
      StackMap locals: javax.lang.model.type.TypeMirror javax.lang.model.type.ExecutableType int
      StackMap stack:
            aload 4 /* tm3 */
            invokeinterface javax.lang.model.type.ExecutableType.getParameterTypes:()Ljava/util/List;
            iload 5 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.lang.model.type.TypeMirror
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 6 /* t1 */
        start local 6 // java.lang.String t1
         6: .line 450
            aload 0
            iload 5 /* j */
            aaload
            astore 7 /* t2 */
        start local 7 // java.lang.String t2
         7: .line 451
            aload 7 /* t2 */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 9
         8: .line 452
            aload 6 /* t1 */
            aload 6 /* t1 */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 6 /* t1 */
         9: .line 454
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 6 /* t1 */
            aload 7 /* t2 */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 455
            iconst_0
            ireturn
        end local 7 // java.lang.String t2
        end local 6 // java.lang.String t1
        11: .line 448
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* j */
            aload 0
            arraylength
            if_icmplt 5
        end local 5 // int j
        13: .line 458
            iconst_1
            ireturn
        end local 4 // javax.lang.model.type.ExecutableType tm3
        end local 3 // javax.lang.model.type.TypeMirror tm2
        14: .line 460
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // javax.lang.model.element.ExecutableElement exeElt
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     2  exeElt  Ljavax/lang/model/element/ExecutableElement;
            2   14     3     tm2  Ljavax/lang/model/type/TypeMirror;
            3   14     4     tm3  Ljavax/lang/model/type/ExecutableType;
            4   13     5       j  I
            6   11     6      t1  Ljava/lang/String;
            7   11     7      t2  Ljava/lang/String;

  private static boolean lambda$15(javax.lang.model.util.Types, javax.lang.model.type.TypeMirror, javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/util/Types;Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // javax.lang.model.element.ExecutableElement exeElt
         0: .line 689
            aload 2 /* exeElt */
            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 1
            aload 0
            aload 1
            aload 2 /* exeElt */
            invokeinterface javax.lang.model.element.ExecutableElement.getReturnType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.util.Types.isSameType:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 2 // javax.lang.model.element.ExecutableElement exeElt
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     2  exeElt  Ljavax/lang/model/element/ExecutableElement;

  private static boolean lambda$12(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.lang.model.element.ExecutableElement exeElt
         0: .line 377
            iconst_1
            ireturn
        end local 0 // javax.lang.model.element.ExecutableElement exeElt
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  exeElt  Ljavax/lang/model/element/ExecutableElement;

  private static boolean lambda$13(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.lang.model.element.ExecutableElement exeElt
         0: .line 378
            iconst_1
            ireturn
        end local 0 // javax.lang.model.element.ExecutableElement exeElt
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  exeElt  Ljavax/lang/model/element/ExecutableElement;
}
SourceFile: "Helper.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles