2018-10-09 21:00:41 -05:00
|
|
|
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<for<'b> Wrap<'b>> = Box::new(Wrapper(process));
|
2018-11-27 03:56:36 -06:00
|
|
|
//~^ ERROR is not an iterator
|
2018-10-09 21:00:41 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|