1// This file is @generated by then_compile_test.rb. Do not edit directly.
2
3#include <folly/futures/test/ThenCompileTest.h>
4
5using namespace folly;
6
7TEST(Basic, thenVariants) {
8 SomeClass anObject;
9
10 {Future<B> f = someFuture<A>().then(&aFunction<Future<B>, Try<A>&&>);}
11 {Future<B> f = someFuture<A>().then(&SomeClass::aStaticMethod<Future<B>, Try<A>&&>);}
12 {Future<B> f = someFuture<A>().then(aStdFunction<Future<B>, Try<A>&&>());}
13 {Future<B> f = someFuture<A>().then([&](Try<A>&&){return someFuture<B>();});}
14 {Future<B> f = someFuture<A>().then(&aFunction<Future<B>, Try<A> const&>);}
15 {Future<B> f = someFuture<A>().then(&SomeClass::aStaticMethod<Future<B>, Try<A> const&>);}
16 {Future<B> f = someFuture<A>().then(aStdFunction<Future<B>, Try<A> const&>());}
17 {Future<B> f = someFuture<A>().then([&](Try<A> const&){return someFuture<B>();});}
18 {Future<B> f = someFuture<A>().then(&aFunction<Future<B>, Try<A>>);}
19 {Future<B> f = someFuture<A>().then(&SomeClass::aStaticMethod<Future<B>, Try<A>>);}
20 {Future<B> f = someFuture<A>().then(aStdFunction<Future<B>, Try<A>>());}
21 {Future<B> f = someFuture<A>().then([&](Try<A>){return someFuture<B>();});}
22 {Future<B> f = someFuture<A>().then(&aFunction<B, Try<A>&&>);}
23 {Future<B> f = someFuture<A>().then(&SomeClass::aStaticMethod<B, Try<A>&&>);}
24 {Future<B> f = someFuture<A>().then(aStdFunction<B, Try<A>&&>());}
25 {Future<B> f = someFuture<A>().then([&](Try<A>&&){return B();});}
26 {Future<B> f = someFuture<A>().then(&aFunction<B, Try<A> const&>);}
27 {Future<B> f = someFuture<A>().then(&SomeClass::aStaticMethod<B, Try<A> const&>);}
28 {Future<B> f = someFuture<A>().then(aStdFunction<B, Try<A> const&>());}
29 {Future<B> f = someFuture<A>().then([&](Try<A> const&){return B();});}
30 {Future<B> f = someFuture<A>().then(&aFunction<B, Try<A>>);}
31 {Future<B> f = someFuture<A>().then(&SomeClass::aStaticMethod<B, Try<A>>);}
32 {Future<B> f = someFuture<A>().then(aStdFunction<B, Try<A>>());}
33 {Future<B> f = someFuture<A>().then([&](Try<A>){return B();});}
34 {Future<B> f = someFuture<A>().thenValue(&aFunction<Future<B>, A&&>);}
35 {Future<B> f = someFuture<A>().thenValue(&SomeClass::aStaticMethod<Future<B>, A&&>);}
36 {Future<B> f = someFuture<A>().thenValue(aStdFunction<Future<B>, A&&>());}
37 {Future<B> f = someFuture<A>().thenValue([&](A&&){return someFuture<B>();});}
38 {Future<B> f = someFuture<A>().thenValue(&aFunction<Future<B>, A const&>);}
39 {Future<B> f = someFuture<A>().thenValue(&SomeClass::aStaticMethod<Future<B>, A const&>);}
40 {Future<B> f = someFuture<A>().thenValue(aStdFunction<Future<B>, A const&>());}
41 {Future<B> f = someFuture<A>().thenValue([&](A const&){return someFuture<B>();});}
42 {Future<B> f = someFuture<A>().thenValue(&aFunction<Future<B>, A>);}
43 {Future<B> f = someFuture<A>().thenValue(&SomeClass::aStaticMethod<Future<B>, A>);}
44 {Future<B> f = someFuture<A>().thenValue(aStdFunction<Future<B>, A>());}
45 {Future<B> f = someFuture<A>().thenValue([&](A){return someFuture<B>();});}
46 {Future<B> f = someFuture<A>().thenValue(&aFunction<B, A&&>);}
47 {Future<B> f = someFuture<A>().thenValue(&SomeClass::aStaticMethod<B, A&&>);}
48 {Future<B> f = someFuture<A>().thenValue(aStdFunction<B, A&&>());}
49 {Future<B> f = someFuture<A>().thenValue([&](A&&){return B();});}
50 {Future<B> f = someFuture<A>().thenValue(&aFunction<B, A const&>);}
51 {Future<B> f = someFuture<A>().thenValue(&SomeClass::aStaticMethod<B, A const&>);}
52 {Future<B> f = someFuture<A>().thenValue(aStdFunction<B, A const&>());}
53 {Future<B> f = someFuture<A>().thenValue([&](A const&){return B();});}
54 {Future<B> f = someFuture<A>().thenValue(&aFunction<B, A>);}
55 {Future<B> f = someFuture<A>().thenValue(&SomeClass::aStaticMethod<B, A>);}
56 {Future<B> f = someFuture<A>().thenValue(aStdFunction<B, A>());}
57 {Future<B> f = someFuture<A>().thenValue([&](A){return B();});}
58 {Future<B> f = someFuture<A>().then(&SomeClass::aMethod<Future<B>, Try<A>&&>, &anObject);}
59 {Future<B> f = someFuture<A>().then(&SomeClass::aMethod<Future<B>, Try<A> const&>, &anObject);}
60 {Future<B> f = someFuture<A>().then(&SomeClass::aMethod<Future<B>, Try<A>>, &anObject);}
61 {Future<B> f = someFuture<A>().then(&SomeClass::aMethod<B, Try<A>&&>, &anObject);}
62 {Future<B> f = someFuture<A>().then(&SomeClass::aMethod<B, Try<A> const&>, &anObject);}
63 {Future<B> f = someFuture<A>().then(&SomeClass::aMethod<B, Try<A>>, &anObject);}
64}
65