trait Original { | |
fn f() -> impl Fn(); | |
} | |
trait Erased { | |
fn f(&self) -> Box<dyn Fn()>; | |
} | |
impl<T: Original> Erased for T { | |
fn f(&self) -> Box<dyn Fn()> { | |
Box::new(<T as Original>::f()) | |
//~^ ERROR the associated type `impl Fn()` may not live long enough | |
} | |
} | |
fn main () {} |