class io.vertx.codegen.type.TypeUse$1 implements io.vertx.codegen.type.TypeUse$TypeInternalProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.codegen.type.TypeUse$1
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.type.TypeUse$1 this
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.codegen.type.TypeUse$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/type/TypeUse$1;

  private java.lang.reflect.Method getMethod(javax.annotation.processing.ProcessingEnvironment, javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.codegen.type.TypeUse$1 this
        start local 1 // javax.annotation.processing.ProcessingEnvironment env
        start local 2 // javax.lang.model.element.ExecutableElement methodElt
         0: .line 52
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            aload 2 /* methodElt */
            invokestatic io.vertx.codegen.Helper.getReflectMethod:(Ljava/lang/ClassLoader;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/reflect/Method;
            astore 3 /* methodRef */
        start local 3 // java.lang.reflect.Method methodRef
         1: .line 53
            aload 3 /* methodRef */
            ifnonnull 3
         2: .line 54
            aload 1 /* env */
            aload 2 /* methodElt */
            invokestatic io.vertx.codegen.Helper.getReflectMethod:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/reflect/Method;
            astore 3 /* methodRef */
         3: .line 56
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 3 /* methodRef */
            areturn
        end local 3 // java.lang.reflect.Method methodRef
        end local 2 // javax.lang.model.element.ExecutableElement methodElt
        end local 1 // javax.annotation.processing.ProcessingEnvironment env
        end local 0 // io.vertx.codegen.type.TypeUse$1 this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lio/vertx/codegen/type/TypeUse$1;
            0    4     1        env  Ljavax/annotation/processing/ProcessingEnvironment;
            0    4     2  methodElt  Ljavax/lang/model/element/ExecutableElement;
            1    4     3  methodRef  Ljava/lang/reflect/Method;
    MethodParameters:
           Name  Flags
      env        
      methodElt  

  public io.vertx.codegen.type.TypeUse$TypeInternal forParam(javax.annotation.processing.ProcessingEnvironment, javax.lang.model.element.ExecutableElement, int);
    descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/ExecutableElement;I)Lio/vertx/codegen/type/TypeUse$TypeInternal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // io.vertx.codegen.type.TypeUse$1 this
        start local 1 // javax.annotation.processing.ProcessingEnvironment env
        start local 2 // javax.lang.model.element.ExecutableElement methodElt
        start local 3 // int paramIndex
         0: .line 59
            aload 0 /* this */
            aload 1 /* env */
            aload 2 /* methodElt */
            invokevirtual io.vertx.codegen.type.TypeUse$1.getMethod:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/reflect/Method;
            astore 4 /* methodRef */
        start local 4 // java.lang.reflect.Method methodRef
         1: .line 60
            aload 4 /* methodRef */
            ifnonnull 3
         2: .line 61
            aconst_null
            areturn
         3: .line 63
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 4 /* methodRef */
            invokevirtual java.lang.reflect.Method.getAnnotatedParameterTypes:()[Ljava/lang/reflect/AnnotatedType;
            iload 3 /* paramIndex */
            aaload
            astore 5 /* annotated */
        start local 5 // java.lang.reflect.AnnotatedType annotated
         4: .line 64
            new io.vertx.codegen.type.TypeUse$ReflectType
            dup
            aload 5 /* annotated */
            invokespecial io.vertx.codegen.type.TypeUse$ReflectType.<init>:(Ljava/lang/reflect/AnnotatedType;)V
            areturn
        end local 5 // java.lang.reflect.AnnotatedType annotated
        end local 4 // java.lang.reflect.Method methodRef
        end local 3 // int paramIndex
        end local 2 // javax.lang.model.element.ExecutableElement methodElt
        end local 1 // javax.annotation.processing.ProcessingEnvironment env
        end local 0 // io.vertx.codegen.type.TypeUse$1 this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lio/vertx/codegen/type/TypeUse$1;
            0    5     1         env  Ljavax/annotation/processing/ProcessingEnvironment;
            0    5     2   methodElt  Ljavax/lang/model/element/ExecutableElement;
            0    5     3  paramIndex  I
            1    5     4   methodRef  Ljava/lang/reflect/Method;
            4    5     5   annotated  Ljava/lang/reflect/AnnotatedType;
    MethodParameters:
            Name  Flags
      env         
      methodElt   
      paramIndex  

  public io.vertx.codegen.type.TypeUse$TypeInternal forReturn(javax.annotation.processing.ProcessingEnvironment, javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/ExecutableElement;)Lio/vertx/codegen/type/TypeUse$TypeInternal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.vertx.codegen.type.TypeUse$1 this
        start local 1 // javax.annotation.processing.ProcessingEnvironment env
        start local 2 // javax.lang.model.element.ExecutableElement methodElt
         0: .line 67
            aload 0 /* this */
            aload 1 /* env */
            aload 2 /* methodElt */
            invokevirtual io.vertx.codegen.type.TypeUse$1.getMethod:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/reflect/Method;
            astore 3 /* methodRef */
        start local 3 // java.lang.reflect.Method methodRef
         1: .line 68
            aload 3 /* methodRef */
            ifnonnull 3
         2: .line 69
            aconst_null
            areturn
         3: .line 71
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 3 /* methodRef */
            invokevirtual java.lang.reflect.Method.getAnnotatedReturnType:()Ljava/lang/reflect/AnnotatedType;
            astore 4 /* annotated */
        start local 4 // java.lang.reflect.AnnotatedType annotated
         4: .line 72
            new io.vertx.codegen.type.TypeUse$ReflectType
            dup
            aload 4 /* annotated */
            invokespecial io.vertx.codegen.type.TypeUse$ReflectType.<init>:(Ljava/lang/reflect/AnnotatedType;)V
            areturn
        end local 4 // java.lang.reflect.AnnotatedType annotated
        end local 3 // java.lang.reflect.Method methodRef
        end local 2 // javax.lang.model.element.ExecutableElement methodElt
        end local 1 // javax.annotation.processing.ProcessingEnvironment env
        end local 0 // io.vertx.codegen.type.TypeUse$1 this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lio/vertx/codegen/type/TypeUse$1;
            0    5     1        env  Ljavax/annotation/processing/ProcessingEnvironment;
            0    5     2  methodElt  Ljavax/lang/model/element/ExecutableElement;
            1    5     3  methodRef  Ljava/lang/reflect/Method;
            4    5     4  annotated  Ljava/lang/reflect/AnnotatedType;
    MethodParameters:
           Name  Flags
      env        
      methodElt  
}
SourceFile: "TypeUse.java"
EnclosingMethod: io.vertx.codegen.type.TypeUse
NestHost: io.vertx.codegen.type.TypeUse
InnerClasses:
  io.vertx.codegen.type.TypeUse$1
  private ReflectType = io.vertx.codegen.type.TypeUse$ReflectType of io.vertx.codegen.type.TypeUse
  abstract TypeInternal = io.vertx.codegen.type.TypeUse$TypeInternal of io.vertx.codegen.type.TypeUse
  abstract TypeInternalProvider = io.vertx.codegen.type.TypeUse$TypeInternalProvider of io.vertx.codegen.type.TypeUse