pub trait Iterable { | |
type Item<'a> | |
where | |
Self: 'a; | |
fn iter(&self) -> impl Iterator; | |
} | |
impl<'a, I: 'a + Iterable> Iterable for &'a I { | |
type Item = u32; | |
//~^ ERROR lifetime parameters or bounds on type `Item` do not match the trait declaration | |
fn iter(&self) -> impl for<'missing> Iterator<Item = Self::Item<'missing>> {} | |
//~^ ERROR binding for associated type `Item` references lifetime `'missing` | |
//~| ERROR `()` is not an iterator | |
} | |
fn main() {} |