| @@ -26,6 +26,7 @@ pub trait AsyncFn<Args: Tuple>: AsyncFnMut { |
|
|
| 26 |
26 |
pub trait AsyncFnMut<Args: Tuple>: AsyncFnOnce<Args> { |
| 27 |
27 |
/// Future returned by [`AsyncFnMut::async_call_mut`] and [`AsyncFn::async_call`]. |
| 28 |
28 |
#[unstable(feature = "async_fn_traits", issue = "none")] |
|
29 |
+#[cfg_attr(not(bootstrap), lang = "call_ref_future")] |
| 29 |
30 |
type CallRefFuture<'a>: Future<Output = Self::Output> |
| 30 |
31 |
where |
| 31 |
32 |
Self: 'a; |
| @@ -46,10 +47,12 @@ pub trait AsyncFnMut<Args: Tuple>: AsyncFnOnce { |
|
|
| 46 |
47 |
pub trait AsyncFnOnce<Args: Tuple> { |
| 47 |
48 |
/// Future returned by [`AsyncFnOnce::async_call_once`]. |
| 48 |
49 |
#[unstable(feature = "async_fn_traits", issue = "none")] |
|
50 |
+#[cfg_attr(not(bootstrap), lang = "call_once_future")] |
| 49 |
51 |
type CallOnceFuture: Future<Output = Self::Output>; |
| 50 |
52 |
|
| 51 |
53 |
/// Output type of the called closure's future. |
| 52 |
54 |
#[unstable(feature = "async_fn_traits", issue = "none")] |
|
55 |
+#[cfg_attr(not(bootstrap), lang = "async_fn_once_output")] |
| 53 |
56 |
type Output; |
| 54 |
57 |
|
| 55 |
58 |
/// Call the [`AsyncFnOnce`], returning a future which may move out of the called closure. |
| @@ -143,6 +146,7 @@ mod internal_implementation_detail { |
|
|
| 143 |
146 |
// `for<'env> fn() -> (&'env T, ...)`. This allows us to represent the binder |
| 144 |
147 |
// of the closure's self-capture, and these upvar types will be instantiated with |
| 145 |
148 |
// the `'closure_env` region provided to the associated type. |
|
149 |
+#[cfg_attr(not(bootstrap), lang = "async_fn_kind_upvars")] |
| 146 |
150 |
type Upvars<'closure_env, Inputs, Upvars, BorrowedUpvarsAsFnPtr>; |
| 147 |
151 |
} |
| 148 |
152 |
} |