| trait Wrap<'b> { | |
| fn foo(&'b mut self); | |
| } | |
| struct Wrapper<P>(P); | |
| impl<'b, P> Wrap<'b> for Wrapper<P> | |
| where P: Process<'b>, | |
| <P as Process<'b>>::Item: Iterator { | |
| fn foo(&mut self) {} | |
| } | |
| pub trait Process<'a> { | |
| type Item; | |
| fn bar(&'a self); | |
| } | |
| fn push_process<P>(process: P) where P: Process<'static> { | |
| let _: Box<dyn for<'b> Wrap<'b>> = Box::new(Wrapper(process)); | |
| //~^ ERROR is not an iterator | |
| } | |
| fn main() {} |