Remove unnecessary types in `extension_trait`.

The remaining type requires the square brackets (for now) because a `ty`
cannot immediately precede a `$(tt)*`.
pull/1006/head
Nicholas Nethercote 3 years ago
parent c10d2d3a6f
commit 6b3667d1a4

@ -45,7 +45,7 @@ extension_trait! {
/// ```
#[cfg(feature = "unstable")]
#[cfg_attr(feature = "docs", doc(cfg(unstable)))]
fn delay(self, dur: Duration) -> impl Future<Output = Self::Output> [DelayFuture<Self>]
fn delay(self, dur: Duration) -> [DelayFuture<Self>]
where
Self: Sized,
{
@ -70,8 +70,7 @@ extension_trait! {
#[cfg_attr(feature = "docs", doc(cfg(unstable)))]
fn flatten(
self,
) -> impl Future<Output = <Self::Output as IntoFuture>::Output>
[FlattenFuture<Self, <Self::Output as IntoFuture>::Future>]
) -> [FlattenFuture<Self, <Self::Output as IntoFuture>::Future>]
where
Self: Sized,
<Self as Future>::Output: IntoFuture,
@ -113,7 +112,7 @@ extension_trait! {
fn race<F>(
self,
other: F,
) -> impl Future<Output = <Self as std::future::Future>::Output> [Race<Self, F>]
) -> [Race<Self, F>]
where
Self: std::future::Future + Sized,
F: std::future::Future<Output = <Self as std::future::Future>::Output>,
@ -159,7 +158,7 @@ extension_trait! {
fn try_race<F, T, E>(
self,
other: F
) -> impl Future<Output = <Self as std::future::Future>::Output> [TryRace<Self, F>]
) -> [TryRace<Self, F>]
where
Self: std::future::Future<Output = Result<T, E>> + Sized,
F: std::future::Future<Output = <Self as std::future::Future>::Output>,
@ -196,7 +195,7 @@ extension_trait! {
fn join<F>(
self,
other: F
) -> impl Future<Output = (<Self as std::future::Future>::Output, <F as std::future::Future>::Output)> [Join<Self, F>]
) -> [Join<Self, F>]
where
Self: std::future::Future + Sized,
F: std::future::Future,
@ -243,7 +242,7 @@ extension_trait! {
fn try_join<F, A, B, E>(
self,
other: F
) -> impl Future<Output = Result<(A, B), E>> [TryJoin<Self, F>]
) -> [TryJoin<Self, F>]
where
Self: std::future::Future<Output = Result<A, E>> + Sized,
F: std::future::Future<Output = Result<B, E>>,
@ -279,7 +278,7 @@ extension_trait! {
"#]
#[cfg(any(all(feature = "default", feature = "unstable"), feature = "docs"))]
#[cfg_attr(feature = "docs", doc(cfg(unstable)))]
fn timeout(self, dur: Duration) -> impl Future<Output = Self::Output> [TimeoutFuture<Self>]
fn timeout(self, dur: Duration) -> [TimeoutFuture<Self>]
where Self: Sized
{
TimeoutFuture::new(self, dur)

@ -78,7 +78,7 @@ extension_trait! {
&'a mut self,
byte: u8,
buf: &'a mut Vec<u8>,
) -> impl Future<Output = usize> [ReadUntilFuture<'a, Self>]
) -> [ReadUntilFuture<'a, Self>]
where
Self: Unpin,
{
@ -131,7 +131,7 @@ extension_trait! {
fn read_line<'a>(
&'a mut self,
buf: &'a mut String,
) -> impl Future<Output = io::Result<usize>> [ReadLineFuture<'a, Self>]
) -> [ReadLineFuture<'a, Self>]
where
Self: Unpin,
{

@ -64,7 +64,7 @@ extension_trait! {
fn read<'a>(
&'a mut self,
buf: &'a mut [u8],
) -> impl Future<Output = io::Result<usize>> [ReadFuture<'a, Self>]
) -> [ReadFuture<'a, Self>]
where
Self: Unpin
{
@ -86,7 +86,7 @@ extension_trait! {
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>],
) -> impl Future<Output = io::Result<usize>> [ReadVectoredFuture<'a, Self>]
) -> [ReadVectoredFuture<'a, Self>]
where
Self: Unpin,
{
@ -123,7 +123,7 @@ extension_trait! {
fn read_to_end<'a>(
&'a mut self,
buf: &'a mut Vec<u8>,
) -> impl Future<Output = io::Result<usize>> [ReadToEndFuture<'a, Self>]
) -> [ReadToEndFuture<'a, Self>]
where
Self: Unpin,
{
@ -162,7 +162,7 @@ extension_trait! {
fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String,
) -> impl Future<Output = io::Result<usize>> [ReadToStringFuture<'a, Self>]
) -> [ReadToStringFuture<'a, Self>]
where
Self: Unpin,
{
@ -217,7 +217,7 @@ extension_trait! {
fn read_exact<'a>(
&'a mut self,
buf: &'a mut [u8],
) -> impl Future<Output = io::Result<()>> [ReadExactFuture<'a, Self>]
) -> [ReadExactFuture<'a, Self>]
where
Self: Unpin,
{

@ -40,7 +40,7 @@ extension_trait! {
fn seek(
&mut self,
pos: SeekFrom,
) -> impl Future<Output = io::Result<u64>> [SeekFuture<'_, Self>]
) -> [SeekFuture<'_, Self>]
where
Self: Unpin,
{

@ -49,7 +49,7 @@ extension_trait! {
fn write<'a>(
&'a mut self,
buf: &'a [u8],
) -> impl Future<Output = io::Result<usize>> [WriteFuture<'a, Self>]
) -> [WriteFuture<'a, Self>]
where
Self: Unpin,
{
@ -75,7 +75,7 @@ extension_trait! {
# Ok(()) }) }
```
"#]
fn flush(&mut self) -> impl Future<Output = io::Result<()>> [FlushFuture<'_, Self>]
fn flush(&mut self) -> [FlushFuture<'_, Self>]
where
Self: Unpin,
{
@ -97,7 +97,7 @@ extension_trait! {
fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>],
) -> impl Future<Output = io::Result<usize>> [WriteVectoredFuture<'a, Self>]
) -> [WriteVectoredFuture<'a, Self>]
where
Self: Unpin,
{
@ -133,7 +133,7 @@ extension_trait! {
fn write_all<'a>(
&'a mut self,
buf: &'a [u8],
) -> impl Future<Output = io::Result<()>> [WriteAllFuture<'a, Self>]
) -> [WriteAllFuture<'a, Self>]
where
Self: Unpin,
{
@ -170,7 +170,7 @@ extension_trait! {
fn write_fmt<'a>(
&'a mut self,
fmt: std::fmt::Arguments<'_>,
) -> impl Future<Output = io::Result<()>> [WriteFmtFuture<'a, Self>]
) -> [WriteFmtFuture<'a, Self>]
where
Self: Unpin,
{

@ -177,7 +177,7 @@ extension_trait! {
# }) }
```
"#]
fn next(&mut self) -> impl Future<Output = Option<Self::Item>> [NextFuture<'_, Self>]
fn next(&mut self) -> [NextFuture<'_, Self>]
where
Self: Unpin,
{
@ -629,7 +629,7 @@ extension_trait! {
"#]
fn last(
self,
) -> impl Future<Output = Option<Self::Item>> [LastFuture<Self, Self::Item>]
) -> [LastFuture<Self, Self::Item>]
where
Self: Sized,
{
@ -839,7 +839,7 @@ extension_trait! {
fn min_by_key<B, F>(
self,
key_by: F,
) -> impl Future<Output = Option<Self::Item>> [MinByKeyFuture<Self, Self::Item, F>]
) -> [MinByKeyFuture<Self, Self::Item, F>]
where
Self: Sized,
B: Ord,
@ -875,7 +875,7 @@ extension_trait! {
fn max_by_key<B, F>(
self,
key_by: F,
) -> impl Future<Output = Option<Self::Item>> [MaxByKeyFuture<Self, Self::Item, F>]
) -> [MaxByKeyFuture<Self, Self::Item, F>]
where
Self: Sized,
B: Ord,
@ -914,7 +914,7 @@ extension_trait! {
fn min_by<F>(
self,
compare: F,
) -> impl Future<Output = Option<Self::Item>> [MinByFuture<Self, F, Self::Item>]
) -> [MinByFuture<Self, F, Self::Item>]
where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
@ -947,7 +947,7 @@ extension_trait! {
"#]
fn max(
self,
) -> impl Future<Output = Option<Self::Item>> [MaxFuture<Self, Self::Item>]
) -> [MaxFuture<Self, Self::Item>]
where
Self: Sized,
Self::Item: Ord,
@ -980,7 +980,7 @@ extension_trait! {
"#]
fn min(
self,
) -> impl Future<Output = Option<Self::Item>> [MinFuture<Self, Self::Item>]
) -> [MinFuture<Self, Self::Item>]
where
Self: Sized,
Self::Item: Ord,
@ -1018,7 +1018,7 @@ extension_trait! {
fn max_by<F>(
self,
compare: F,
) -> impl Future<Output = Option<Self::Item>> [MaxByFuture<Self, F, Self::Item>]
) -> [MaxByFuture<Self, F, Self::Item>]
where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
@ -1082,7 +1082,7 @@ extension_trait! {
fn nth(
&mut self,
n: usize,
) -> impl Future<Output = Option<Self::Item>> [NthFuture<'_, Self>]
) -> [NthFuture<'_, Self>]
where
Self: Unpin + Sized,
{
@ -1138,7 +1138,7 @@ extension_trait! {
fn all<F>(
&mut self,
f: F,
) -> impl Future<Output = bool> [AllFuture<'_, Self, F, Self::Item>]
) -> [AllFuture<'_, Self, F, Self::Item>]
where
Self: Unpin + Sized,
F: FnMut(Self::Item) -> bool,
@ -1187,7 +1187,7 @@ extension_trait! {
fn find<P>(
&mut self,
p: P,
) -> impl Future<Output = Option<Self::Item>> [FindFuture<'_, Self, P>]
) -> [FindFuture<'_, Self, P>]
where
Self: Unpin + Sized,
P: FnMut(&Self::Item) -> bool,
@ -1215,7 +1215,7 @@ extension_trait! {
fn find_map<F, B>(
&mut self,
f: F,
) -> impl Future<Output = Option<B>> [FindMapFuture<'_, Self, F>]
) -> [FindMapFuture<'_, Self, F>]
where
Self: Unpin + Sized,
F: FnMut(Self::Item) -> Option<B>,
@ -1249,7 +1249,7 @@ extension_trait! {
self,
init: B,
f: F,
) -> impl Future<Output = B> [FoldFuture<Self, F, B>]
) -> [FoldFuture<Self, F, B>]
where
Self: Sized,
F: FnMut(B, Self::Item) -> B,
@ -1286,7 +1286,7 @@ extension_trait! {
fn partition<B, F>(
self,
f: F,
) -> impl Future<Output = (B, B)> [PartitionFuture<Self, F, B>]
) -> [PartitionFuture<Self, F, B>]
where
Self: Sized,
F: FnMut(&Self::Item) -> bool,
@ -1322,7 +1322,7 @@ extension_trait! {
fn for_each<F>(
self,
f: F,
) -> impl Future<Output = ()> [ForEachFuture<Self, F>]
) -> [ForEachFuture<Self, F>]
where
Self: Sized,
F: FnMut(Self::Item),
@ -1378,7 +1378,7 @@ extension_trait! {
fn any<F>(
&mut self,
f: F,
) -> impl Future<Output = bool> [AnyFuture<'_, Self, F, Self::Item>]
) -> [AnyFuture<'_, Self, F, Self::Item>]
where
Self: Unpin + Sized,
F: FnMut(Self::Item) -> bool,
@ -1614,7 +1614,7 @@ extension_trait! {
&mut self,
init: T,
f: F,
) -> impl Future<Output = Result<T, E>> [TryFoldFuture<'_, Self, F, T>]
) -> [TryFoldFuture<'_, Self, F, T>]
where
Self: Unpin + Sized,
F: FnMut(B, Self::Item) -> Result<T, E>,
@ -1659,7 +1659,7 @@ extension_trait! {
fn try_for_each<F, E>(
&mut self,
f: F,
) -> impl Future<Output = E> [TryForEachFuture<'_, Self, F>]
) -> [TryForEachFuture<'_, Self, F>]
where
Self: Unpin + Sized,
F: FnMut(Self::Item) -> Result<(), E>,
@ -1741,7 +1741,7 @@ extension_trait! {
"#]
#[cfg(feature = "unstable")]
#[cfg_attr(feature = "docs", doc(cfg(unstable)))]
fn unzip<A, B, FromA, FromB>(self) -> impl Future<Output = (FromA, FromB)> [UnzipFuture<Self, FromA, FromB>]
fn unzip<A, B, FromA, FromB>(self) -> [UnzipFuture<Self, FromA, FromB>]
where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
@ -1805,7 +1805,7 @@ extension_trait! {
#[cfg_attr(feature = "docs", doc(cfg(unstable)))]
fn collect<'a, B>(
self,
) -> impl Future<Output = B> [Pin<Box<dyn Future<Output = B> + 'a + Send>>]
) -> [Pin<Box<dyn Future<Output = B> + 'a + Send>>]
where
Self: Sized + 'a + Send,
B: FromStream<Self::Item>,
@ -1879,7 +1879,7 @@ extension_trait! {
fn partial_cmp<S>(
self,
other: S
) -> impl Future<Output = Option<Ordering>> [PartialCmpFuture<Self, S>]
) -> [PartialCmpFuture<Self, S>]
where
Self: Sized + Stream,
S: Stream,
@ -1919,7 +1919,7 @@ extension_trait! {
fn position<P>(
&mut self,
predicate: P,
) -> impl Future<Output = Option<usize>> [PositionFuture<'_, Self, P>]
) -> [PositionFuture<'_, Self, P>]
where
Self: Unpin + Sized,
P: FnMut(Self::Item) -> bool,
@ -1957,7 +1957,7 @@ extension_trait! {
fn cmp<S>(
self,
other: S
) -> impl Future<Output = Ordering> [CmpFuture<Self, S>]
) -> [CmpFuture<Self, S>]
where
Self: Sized + Stream,
S: Stream,
@ -1988,7 +1988,7 @@ extension_trait! {
"#]
#[cfg(feature = "unstable")]
#[cfg_attr(feature = "docs", doc(cfg(unstable)))]
fn count(self) -> impl Future<Output = usize> [CountFuture<Self>]
fn count(self) -> [CountFuture<Self>]
where
Self: Sized,
{
@ -2023,7 +2023,7 @@ extension_trait! {
fn ne<S>(
self,
other: S
) -> impl Future<Output = bool> [NeFuture<Self, S>]
) -> [NeFuture<Self, S>]
where
Self: Sized,
S: Sized + Stream,
@ -2060,7 +2060,7 @@ extension_trait! {
fn ge<S>(
self,
other: S
) -> impl Future<Output = bool> [GeFuture<Self, S>]
) -> [GeFuture<Self, S>]
where
Self: Sized + Stream,
S: Stream,
@ -2097,7 +2097,7 @@ extension_trait! {
fn eq<S>(
self,
other: S
) -> impl Future<Output = bool> [EqFuture<Self, S>]
) -> [EqFuture<Self, S>]
where
Self: Sized + Stream,
S: Sized + Stream,
@ -2134,7 +2134,7 @@ extension_trait! {
fn gt<S>(
self,
other: S
) -> impl Future<Output = bool> [GtFuture<Self, S>]
) -> [GtFuture<Self, S>]
where
Self: Sized + Stream,
S: Stream,
@ -2171,7 +2171,7 @@ extension_trait! {
fn le<S>(
self,
other: S
) -> impl Future<Output = bool> [LeFuture<Self, S>]
) -> [LeFuture<Self, S>]
where
Self: Sized + Stream,
S: Stream,
@ -2208,7 +2208,7 @@ extension_trait! {
fn lt<S>(
self,
other: S
) -> impl Future<Output = bool> [LtFuture<Self, S>]
) -> [LtFuture<Self, S>]
where
Self: Sized + Stream,
S: Stream,
@ -2252,7 +2252,7 @@ extension_trait! {
#[cfg_attr(feature = "docs", doc(cfg(unstable)))]
fn sum<'a, S>(
self,
) -> impl Future<Output = S> [Pin<Box<dyn Future<Output = S> + 'a>>]
) -> [Pin<Box<dyn Future<Output = S> + 'a>>]
where
Self: Sized + Stream<Item = S> + 'a,
S: Sum<Self::Item>,
@ -2298,7 +2298,7 @@ extension_trait! {
#[cfg_attr(feature = "docs", doc(cfg(unstable)))]
fn product<'a, P>(
self,
) -> impl Future<Output = P> [Pin<Box<dyn Future<Output = P> + 'a>>]
) -> [Pin<Box<dyn Future<Output = P> + 'a>>]
where
Self: Sized + Stream<Item = P> + 'a,
P: Product,

@ -271,7 +271,7 @@ macro_rules! extension_trait {
};
// Parse the return type in an extension method.
(@ext [-> impl Future<Output = $out:ty> [$f:ty] $($tail:tt)*] -> [$($accum:tt)*]) => {
(@ext [-> [$f:ty] $($tail:tt)*] -> [$($accum:tt)*]) => {
extension_trait!(@ext [$($tail)*] -> [$($accum)* -> $f]);
};

Loading…
Cancel
Save