1 // This file is @generated by then_compile_test.rb. Do not edit directly.
2
3 #include <folly/futures/test/ThenCompileTest.h>
4
5 using namespace folly;
6
TEST(Basic,thenVariants)7 TEST(Basic, thenVariants) {
8 SomeClass anObject;
9
10 { Future<B> f = someFuture<A>().then(&aFunction<Future<B>, Try<A>&&>); }
11 {
12 Future<B> f =
13 someFuture<A>().then(&SomeClass::aStaticMethod<Future<B>, Try<A>&&>);
14 }
15 { Future<B> f = someFuture<A>().then(aStdFunction<Future<B>, Try<A>&&>()); }
16 {
17 Future<B> f =
18 someFuture<A>().then([&](Try<A>&&) { return someFuture<B>(); });
19 }
20 { Future<B> f = someFuture<A>().then(&aFunction<Future<B>, Try<A> const&>); }
21 {
22 Future<B> f = someFuture<A>().then(
23 &SomeClass::aStaticMethod<Future<B>, Try<A> const&>);
24 }
25 {
26 Future<B> f =
27 someFuture<A>().then(aStdFunction<Future<B>, Try<A> const&>());
28 }
29 {
30 Future<B> f =
31 someFuture<A>().then([&](Try<A> const&) { return someFuture<B>(); });
32 }
33 { Future<B> f = someFuture<A>().then(&aFunction<Future<B>, Try<A>>); }
34 {
35 Future<B> f =
36 someFuture<A>().then(&SomeClass::aStaticMethod<Future<B>, Try<A>>);
37 }
38 { Future<B> f = someFuture<A>().then(aStdFunction<Future<B>, Try<A>>()); }
39 {
40 Future<B> f = someFuture<A>().then([&](Try<A>) { return someFuture<B>(); });
41 }
42 { Future<B> f = someFuture<A>().then(&aFunction<B, Try<A>&&>); }
43 {
44 Future<B> f = someFuture<A>().then(&SomeClass::aStaticMethod<B, Try<A>&&>);
45 }
46 { Future<B> f = someFuture<A>().then(aStdFunction<B, Try<A>&&>()); }
47 {
48 Future<B> f = someFuture<A>().then([&](Try<A>&&) { return B(); });
49 }
50 { Future<B> f = someFuture<A>().then(&aFunction<B, Try<A> const&>); }
51 {
52 Future<B> f =
53 someFuture<A>().then(&SomeClass::aStaticMethod<B, Try<A> const&>);
54 }
55 { Future<B> f = someFuture<A>().then(aStdFunction<B, Try<A> const&>()); }
56 {
57 Future<B> f = someFuture<A>().then([&](Try<A> const&) { return B(); });
58 }
59 { Future<B> f = someFuture<A>().then(&aFunction<B, Try<A>>); }
60 { Future<B> f = someFuture<A>().then(&SomeClass::aStaticMethod<B, Try<A>>); }
61 { Future<B> f = someFuture<A>().then(aStdFunction<B, Try<A>>()); }
62 {
63 Future<B> f = someFuture<A>().then([&](Try<A>) { return B(); });
64 }
65 { Future<B> f = someFuture<A>().thenValue(&aFunction<Future<B>, A&&>); }
66 {
67 Future<B> f =
68 someFuture<A>().thenValue(&SomeClass::aStaticMethod<Future<B>, A&&>);
69 }
70 { Future<B> f = someFuture<A>().thenValue(aStdFunction<Future<B>, A&&>()); }
71 {
72 Future<B> f =
73 someFuture<A>().thenValue([&](A&&) { return someFuture<B>(); });
74 }
75 { Future<B> f = someFuture<A>().thenValue(&aFunction<Future<B>, A const&>); }
76 {
77 Future<B> f = someFuture<A>().thenValue(
78 &SomeClass::aStaticMethod<Future<B>, A const&>);
79 }
80 {
81 Future<B> f =
82 someFuture<A>().thenValue(aStdFunction<Future<B>, A const&>());
83 }
84 {
85 Future<B> f =
86 someFuture<A>().thenValue([&](A const&) { return someFuture<B>(); });
87 }
88 { Future<B> f = someFuture<A>().thenValue(&aFunction<Future<B>, A>); }
89 {
90 Future<B> f =
91 someFuture<A>().thenValue(&SomeClass::aStaticMethod<Future<B>, A>);
92 }
93 { Future<B> f = someFuture<A>().thenValue(aStdFunction<Future<B>, A>()); }
94 {
95 Future<B> f = someFuture<A>().thenValue([&](A) { return someFuture<B>(); });
96 }
97 { Future<B> f = someFuture<A>().thenValue(&aFunction<B, A&&>); }
98 {
99 Future<B> f = someFuture<A>().thenValue(&SomeClass::aStaticMethod<B, A&&>);
100 }
101 { Future<B> f = someFuture<A>().thenValue(aStdFunction<B, A&&>()); }
102 {
103 Future<B> f = someFuture<A>().thenValue([&](A&&) { return B(); });
104 }
105 { Future<B> f = someFuture<A>().thenValue(&aFunction<B, A const&>); }
106 {
107 Future<B> f =
108 someFuture<A>().thenValue(&SomeClass::aStaticMethod<B, A const&>);
109 }
110 { Future<B> f = someFuture<A>().thenValue(aStdFunction<B, A const&>()); }
111 {
112 Future<B> f = someFuture<A>().thenValue([&](A const&) { return B(); });
113 }
114 { Future<B> f = someFuture<A>().thenValue(&aFunction<B, A>); }
115 { Future<B> f = someFuture<A>().thenValue(&SomeClass::aStaticMethod<B, A>); }
116 { Future<B> f = someFuture<A>().thenValue(aStdFunction<B, A>()); }
117 {
118 Future<B> f = someFuture<A>().thenValue([&](A) { return B(); });
119 }
120 {
121 Future<B> f = someFuture<A>().then(
122 &SomeClass::aMethod<Future<B>, Try<A>&&>, &anObject);
123 }
124 {
125 Future<B> f = someFuture<A>().then(
126 &SomeClass::aMethod<Future<B>, Try<A> const&>, &anObject);
127 }
128 {
129 Future<B> f =
130 someFuture<A>().then(&SomeClass::aMethod<Future<B>, Try<A>>, &anObject);
131 }
132 {
133 Future<B> f =
134 someFuture<A>().then(&SomeClass::aMethod<B, Try<A>&&>, &anObject);
135 }
136 {
137 Future<B> f =
138 someFuture<A>().then(&SomeClass::aMethod<B, Try<A> const&>, &anObject);
139 }
140 {
141 Future<B> f =
142 someFuture<A>().then(&SomeClass::aMethod<B, Try<A>>, &anObject);
143 }
144 }
145