2024-02-22 16:37:33 -06:00
|
|
|
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`
|
2024-03-20 11:52:54 -05:00
|
|
|
//~| ERROR binding for associated type `Item` references lifetime `'missing`
|
2024-02-22 16:37:33 -06:00
|
|
|
//~| ERROR `()` is not an iterator
|
2024-03-30 11:03:29 -05:00
|
|
|
//~| WARNING impl trait in impl method signature does not match trait method signature
|
2024-02-22 16:37:33 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|