public interface io.vertx.core.Future<T> extends io.vertx.core.AsyncResult<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: io.vertx.core.Future
  super_class: java.lang.Object
{
  public static <T> io.vertx.core.Future<T> future(io.vertx.core.Handler<io.vertx.core.Promise<T>>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // io.vertx.core.Handler handler
         0: .line 40
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 1 /* promise */
        start local 1 // io.vertx.core.Promise promise
         1: .line 42
            aload 0 /* handler */
            aload 1 /* promise */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 43
            goto 5
      StackMap locals: io.vertx.core.Handler io.vertx.core.Promise
      StackMap stack: java.lang.Throwable
         3: astore 2 /* e */
        start local 2 // java.lang.Throwable e
         4: .line 44
            aload 1 /* promise */
            aload 2 /* e */
            invokeinterface io.vertx.core.Promise.tryFail:(Ljava/lang/Throwable;)Z
            pop
        end local 2 // java.lang.Throwable e
         5: .line 46
      StackMap locals:
      StackMap stack:
            aload 1 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.Promise promise
        end local 0 // io.vertx.core.Handler handler
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  handler  Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;
            1    6     1  promise  Lio/vertx/core/Promise<TT;>;
            4    5     2        e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
         Name  Flags
      handler  

  public static <T> io.vertx.core.Future<T> succeededFuture();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 56
            getstatic io.vertx.core.impl.future.SucceededFuture.EMPTY:Lio/vertx/core/impl/future/SucceededFuture;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: <T:Ljava/lang/Object;>()Lio/vertx/core/Future<TT;>;

  public static <T> io.vertx.core.Future<T> succeededFuture(T);
    descriptor: (Ljava/lang/Object;)Lio/vertx/core/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object result
         0: .line 67
            aload 0 /* result */
            ifnonnull 2
         1: .line 68
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            areturn
         2: .line 70
      StackMap locals:
      StackMap stack:
            new io.vertx.core.impl.future.SucceededFuture
            dup
            aload 0 /* result */
            invokespecial io.vertx.core.impl.future.SucceededFuture.<init>:(Ljava/lang/Object;)V
            areturn
        end local 0 // java.lang.Object result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  result  TT;
    Signature: <T:Ljava/lang/Object;>(TT;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
        Name  Flags
      result  

  public static <T> io.vertx.core.Future<T> failedFuture(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Lio/vertx/core/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 82
            new io.vertx.core.impl.future.FailedFuture
            dup
            aload 0 /* t */
            invokespecial io.vertx.core.impl.future.FailedFuture.<init>:(Ljava/lang/Throwable;)V
            areturn
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljava/lang/Throwable;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Throwable;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
      Name  Flags
      t     

  public static <T> io.vertx.core.Future<T> failedFuture(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String failureMessage
         0: .line 93
            new io.vertx.core.impl.future.FailedFuture
            dup
            aload 0 /* failureMessage */
            invokespecial io.vertx.core.impl.future.FailedFuture.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // java.lang.String failureMessage
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  failureMessage  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
                Name  Flags
      failureMessage  

  public abstract boolean isComplete();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract io.vertx.core.Future<T> onComplete(io.vertx.core.Handler<io.vertx.core.AsyncResult<T>>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/Future;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;)Lio/vertx/core/Future<TT;>;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.core.Future<T> onSuccess(io.vertx.core.Handler<T>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.Future this
        start local 1 // io.vertx.core.Handler handler
         0: .line 122
            aload 0 /* this */
            aload 1 /* handler */
            invokedynamic handle(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/Future.lambda$0(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (6 itf)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.Future this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/core/Future<TT;>;
            0    1     1  handler  Lio/vertx/core/Handler<TT;>;
    Signature: (Lio/vertx/core/Handler<TT;>;)Lio/vertx/core/Future<TT;>;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.core.Future<T> onFailure(io.vertx.core.Handler<java.lang.Throwable>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.Future this
        start local 1 // io.vertx.core.Handler handler
         0: .line 137
            aload 0 /* this */
            aload 1 /* handler */
            invokedynamic handle(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/Future.lambda$1(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (6 itf)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.Future this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/core/Future<TT;>;
            0    1     1  handler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Throwable;>;)Lio/vertx/core/Future<TT;>;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
         Name  Flags
      handler  

  public abstract T result();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()TT;

  public abstract java.lang.Throwable cause();
    descriptor: ()Ljava/lang/Throwable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean succeeded();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean failed();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public <U> io.vertx.core.Future<U> flatMap(java.util.function.Function<T, io.vertx.core.Future<U>>);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.Future this
        start local 1 // java.util.function.Function mapper
         0: .line 180
            aload 0 /* this */
            aload 1 /* mapper */
            invokeinterface io.vertx.core.Future.compose:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 1 // java.util.function.Function mapper
        end local 0 // io.vertx.core.Future this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/vertx/core/Future<TT;>;
            0    1     1  mapper  Ljava/util/function/Function<TT;Lio/vertx/core/Future<TU;>;>;
    Signature: <U:Ljava/lang/Object;>(Ljava/util/function/Function<TT;Lio/vertx/core/Future<TU;>;>;)Lio/vertx/core/Future<TU;>;
    MethodParameters:
        Name  Flags
      mapper  

  public <U> io.vertx.core.Future<U> compose(java.util.function.Function<T, io.vertx.core.Future<U>>);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.Future this
        start local 1 // java.util.function.Function mapper
         0: .line 199
            aload 0 /* this */
            aload 1 /* mapper */
            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/core/Future.failedFuture(Ljava/lang/Throwable;)Lio/vertx/core/Future; (6 itf)
                  (Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Future.compose:(Ljava/util/function/Function;Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 1 // java.util.function.Function mapper
        end local 0 // io.vertx.core.Future this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/vertx/core/Future<TT;>;
            0    1     1  mapper  Ljava/util/function/Function<TT;Lio/vertx/core/Future<TU;>;>;
    Signature: <U:Ljava/lang/Object;>(Ljava/util/function/Function<TT;Lio/vertx/core/Future<TU;>;>;)Lio/vertx/core/Future<TU;>;
    MethodParameters:
        Name  Flags
      mapper  

  public io.vertx.core.Future<T> recover(java.util.function.Function<java.lang.Throwable, io.vertx.core.Future<T>>);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.Future this
        start local 1 // java.util.function.Function mapper
         0: .line 210
            aload 0 /* this */
            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/core/Future.succeededFuture(Ljava/lang/Object;)Lio/vertx/core/Future; (6 itf)
                  (Ljava/lang/Object;)Lio/vertx/core/Future;
            aload 1 /* mapper */
            invokeinterface io.vertx.core.Future.compose:(Ljava/util/function/Function;Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 1 // java.util.function.Function mapper
        end local 0 // io.vertx.core.Future this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/vertx/core/Future<TT;>;
            0    1     1  mapper  Ljava/util/function/Function<Ljava/lang/Throwable;Lio/vertx/core/Future<TT;>;>;
    Signature: (Ljava/util/function/Function<Ljava/lang/Throwable;Lio/vertx/core/Future<TT;>;>;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
        Name  Flags
      mapper  

  public abstract <U> io.vertx.core.Future<U> compose(java.util.function.Function<T, io.vertx.core.Future<U>>, java.util.function.Function<java.lang.Throwable, io.vertx.core.Future<U>>);
    descriptor: (Ljava/util/function/Function;Ljava/util/function/Function;)Lio/vertx/core/Future;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <U:Ljava/lang/Object;>(Ljava/util/function/Function<TT;Lio/vertx/core/Future<TU;>;>;Ljava/util/function/Function<Ljava/lang/Throwable;Lio/vertx/core/Future<TU;>;>;)Lio/vertx/core/Future<TU;>;
    MethodParameters:
               Name  Flags
      successMapper  
      failureMapper  

  public abstract <U> io.vertx.core.Future<U> eventually(java.util.function.Function<java.lang.Void, io.vertx.core.Future<U>>);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/core/Future;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <U:Ljava/lang/Object;>(Ljava/util/function/Function<Ljava/lang/Void;Lio/vertx/core/Future<TU;>;>;)Lio/vertx/core/Future<TU;>;
    MethodParameters:
        Name  Flags
      mapper  

  public abstract <U> io.vertx.core.Future<U> map(java.util.function.Function<T, U>);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/core/Future;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <U:Ljava/lang/Object;>(Ljava/util/function/Function<TT;TU;>;)Lio/vertx/core/Future<TU;>;
    MethodParameters:
        Name  Flags
      mapper  

  public abstract <V> io.vertx.core.Future<V> map(V);
    descriptor: (Ljava/lang/Object;)Lio/vertx/core/Future;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <V:Ljava/lang/Object;>(TV;)Lio/vertx/core/Future<TV;>;
    MethodParameters:
       Name  Flags
      value  

  public <V> io.vertx.core.Future<V> mapEmpty();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.Future this
         0: .line 286
            aload 0 /* this */
            invokespecial io.vertx.core.AsyncResult.mapEmpty:()Lio/vertx/core/AsyncResult;
            checkcast io.vertx.core.Future
            areturn
        end local 0 // io.vertx.core.Future this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/Future<TT;>;
    Signature: <V:Ljava/lang/Object;>()Lio/vertx/core/Future<TV;>;

  public abstract io.vertx.core.Future<T> otherwise(java.util.function.Function<java.lang.Throwable, T>);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/core/Future;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
        Name  Flags
      mapper  

  public abstract io.vertx.core.Future<T> otherwise(T);
    descriptor: (Ljava/lang/Object;)Lio/vertx/core/Future;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;)Lio/vertx/core/Future<TT;>;
    MethodParameters:
       Name  Flags
      value  

  public io.vertx.core.Future<T> otherwiseEmpty();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.Future this
         0: .line 329
            aload 0 /* this */
            invokespecial io.vertx.core.AsyncResult.otherwiseEmpty:()Lio/vertx/core/AsyncResult;
            checkcast io.vertx.core.Future
            areturn
        end local 0 // io.vertx.core.Future this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/Future<TT;>;
    Signature: ()Lio/vertx/core/Future<TT;>;

  public java.util.concurrent.CompletionStage<T> toCompletionStage();
    descriptor: ()Ljava/util/concurrent/CompletionStage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.Future this
         0: .line 341
            new java.util.concurrent.CompletableFuture
            dup
            invokespecial java.util.concurrent.CompletableFuture.<init>:()V
            astore 1 /* completableFuture */
        start local 1 // java.util.concurrent.CompletableFuture completableFuture
         1: .line 342
            aload 0 /* this */
            aload 1 /* completableFuture */
            invokedynamic handle(Ljava/util/concurrent/CompletableFuture;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/Future.lambda$4(Ljava/util/concurrent/CompletableFuture;Lio/vertx/core/AsyncResult;)V (6 itf)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 349
            aload 1 /* completableFuture */
            areturn
        end local 1 // java.util.concurrent.CompletableFuture completableFuture
        end local 0 // io.vertx.core.Future this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lio/vertx/core/Future<TT;>;
            1    3     1  completableFuture  Ljava/util/concurrent/CompletableFuture<TT;>;
    Signature: ()Ljava/util/concurrent/CompletionStage<TT;>;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.GenIgnore()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        io.vertx.codegen.annotations.GenIgnore()

  public static <T> io.vertx.core.Future<T> fromCompletionStage(java.util.concurrent.CompletionStage<T>);
    descriptor: (Ljava/util/concurrent/CompletionStage;)Lio/vertx/core/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.concurrent.CompletionStage completionStage
         0: .line 363
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 1 /* promise */
        start local 1 // io.vertx.core.Promise promise
         1: .line 364
            aload 0 /* completionStage */
            aload 1 /* promise */
            invokedynamic accept(Lio/vertx/core/Promise;)Ljava/util/function/BiConsumer;
              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;)V
                  io/vertx/core/Future.lambda$5(Lio/vertx/core/Promise;Ljava/lang/Object;Ljava/lang/Throwable;)V (6 itf)
                  (Ljava/lang/Object;Ljava/lang/Throwable;)V
            invokeinterface java.util.concurrent.CompletionStage.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletionStage;
            pop
         2: .line 371
            aload 1 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.Promise promise
        end local 0 // java.util.concurrent.CompletionStage completionStage
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0  completionStage  Ljava/util/concurrent/CompletionStage<TT;>;
            1    3     1          promise  Lio/vertx/core/Promise<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/CompletionStage<TT;>;)Lio/vertx/core/Future<TT;>;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.GenIgnore()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        io.vertx.codegen.annotations.GenIgnore()
    MethodParameters:
                 Name  Flags
      completionStage  

  public static <T> io.vertx.core.Future<T> fromCompletionStage(java.util.concurrent.CompletionStage<T>, io.vertx.core.Context);
    descriptor: (Ljava/util/concurrent/CompletionStage;Lio/vertx/core/Context;)Lio/vertx/core/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.concurrent.CompletionStage completionStage
        start local 1 // io.vertx.core.Context context
         0: .line 386
            aload 1 /* context */
            checkcast io.vertx.core.impl.ContextInternal
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         1: .line 387
            aload 0 /* completionStage */
            aload 2 /* promise */
            invokedynamic accept(Lio/vertx/core/Promise;)Ljava/util/function/BiConsumer;
              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;)V
                  io/vertx/core/Future.lambda$6(Lio/vertx/core/Promise;Ljava/lang/Object;Ljava/lang/Throwable;)V (6 itf)
                  (Ljava/lang/Object;Ljava/lang/Throwable;)V
            invokeinterface java.util.concurrent.CompletionStage.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletionStage;
            pop
         2: .line 394
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // io.vertx.core.Context context
        end local 0 // java.util.concurrent.CompletionStage completionStage
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0  completionStage  Ljava/util/concurrent/CompletionStage<TT;>;
            0    3     1          context  Lio/vertx/core/Context;
            1    3     2          promise  Lio/vertx/core/Promise<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/CompletionStage<TT;>;Lio/vertx/core/Context;)Lio/vertx/core/Future<TT;>;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.GenIgnore()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        io.vertx.codegen.annotations.GenIgnore()
    MethodParameters:
                 Name  Flags
      completionStage  
      context          

  public io.vertx.core.AsyncResult map(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/vertx/core/AsyncResult;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.lang.Object
            invokeinterface io.vertx.core.Future.map:(Ljava/lang/Object;)Lio/vertx/core/Future;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.AsyncResult map(java.util.function.Function);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/core/AsyncResult;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.util.function.Function
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.AsyncResult otherwiseEmpty();
    descriptor: ()Lio/vertx/core/AsyncResult;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokeinterface io.vertx.core.Future.otherwiseEmpty:()Lio/vertx/core/Future;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.AsyncResult otherwise(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/vertx/core/AsyncResult;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.lang.Object
            invokeinterface io.vertx.core.Future.otherwise:(Ljava/lang/Object;)Lio/vertx/core/Future;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.AsyncResult otherwise(java.util.function.Function);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/core/AsyncResult;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.util.function.Function
            invokeinterface io.vertx.core.Future.otherwise:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.AsyncResult mapEmpty();
    descriptor: ()Lio/vertx/core/AsyncResult;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokeinterface io.vertx.core.Future.mapEmpty:()Lio/vertx/core/Future;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$0(io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 123
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 2
         1: .line 124
            aload 0
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 126
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    ar  Lio/vertx/core/AsyncResult<TT;>;

  private static void lambda$1(io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 138
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 2
         1: .line 139
            aload 0
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 141
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    ar  Lio/vertx/core/AsyncResult<TT;>;

  private static void lambda$4(java.util.concurrent.CompletableFuture, io.vertx.core.AsyncResult);
    descriptor: (Ljava/util/concurrent/CompletableFuture;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 343
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 3
         1: .line 344
            aload 0
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
            pop
         2: .line 345
            goto 4
         3: .line 346
      StackMap locals:
      StackMap stack:
            aload 0
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
            pop
         4: .line 348
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     1    ar  Lio/vertx/core/AsyncResult<TT;>;

  private static void lambda$5(io.vertx.core.Promise, java.lang.Object, java.lang.Throwable);
    descriptor: (Lio/vertx/core/Promise;Ljava/lang/Object;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 1 // java.lang.Object value
        start local 2 // java.lang.Throwable err
         0: .line 365
            aload 2 /* err */
            ifnull 3
         1: .line 366
            aload 0
            aload 2 /* err */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
         2: .line 367
            goto 4
         3: .line 368
      StackMap locals:
      StackMap stack:
            aload 0
            aload 1 /* value */
            invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
         4: .line 370
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable err
        end local 1 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     1  value  TT;
            0    5     2    err  Ljava/lang/Throwable;

  private static void lambda$6(io.vertx.core.Promise, java.lang.Object, java.lang.Throwable);
    descriptor: (Lio/vertx/core/Promise;Ljava/lang/Object;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 1 // java.lang.Object value
        start local 2 // java.lang.Throwable err
         0: .line 388
            aload 2 /* err */
            ifnull 3
         1: .line 389
            aload 0
            aload 2 /* err */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
         2: .line 390
            goto 4
         3: .line 391
      StackMap locals:
      StackMap stack:
            aload 0
            aload 1 /* value */
            invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
         4: .line 393
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable err
        end local 1 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     1  value  TT;
            0    5     2    err  Ljava/lang/Throwable;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lio/vertx/core/AsyncResult<TT;>;
SourceFile: "Future.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles