trait Wrap<'b> { fn foo(&'b mut self); } struct Wrapper

(P); impl<'b, P> Wrap<'b> for Wrapper

where P: Process<'b>,

>::Item: Iterator { fn foo(&mut self) {} } pub trait Process<'a> { type Item; fn bar(&'a self); } fn push_process

(process: P) where P: Process<'static> { let _: Box Wrap<'b>> = Box::new(Wrapper(process)); //~^ ERROR is not an iterator } fn main() {}