1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
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 binding for associated type `Item` references lifetime `'missing`
//~| ERROR `()` is not an iterator
}
fn main() {}
|