23 lines
470 B
Rust
23 lines
470 B
Rust
|
// Issue #72117
|
||
|
// edition:2018
|
||
|
|
||
|
use core::future::Future;
|
||
|
use core::pin::Pin;
|
||
|
|
||
|
pub type BoxFuture<'a, T> = Pin<Box<dyn Future<Output = T> + Send + 'a>>;
|
||
|
|
||
|
impl<T: ?Sized> FutureExt for T where T: Future {}
|
||
|
trait FutureExt: Future {
|
||
|
fn boxed<'a>(self) -> BoxFuture<'a, Self::Output>
|
||
|
where
|
||
|
Self: Sized + Send + 'a,
|
||
|
{
|
||
|
Box::pin(self)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
let _: BoxFuture<'static, bool> = async {}.boxed();
|
||
|
//~^ ERROR: mismatched types
|
||
|
}
|