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

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

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

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

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

@ -271,7 +271,7 @@ macro_rules! extension_trait {
}; };
// Parse the return type in an extension method. // 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]); extension_trait!(@ext [$($tail)*] -> [$($accum)* -> $f]);
}; };

Loading…
Cancel
Save