4 // This should pass, but has a missed normalization due to HRTB.
7 type Iterator<'a> where Self: 'a;
8 fn iter(&self) -> Self::Iterator<'_>;
11 struct SomeImplementation();
13 impl Iterable for SomeImplementation {
14 type Iterator<'a> = std::iter::Empty<usize>;
15 fn iter(&self) -> Self::Iterator<'_> {
20 fn do_something<I: Iterable>(i: I, mut f: impl for<'a> Fn(&mut I::Iterator<'a>)) {
25 do_something(SomeImplementation(), |_| ());
26 do_something(SomeImplementation(), test);
29 fn test<'a, I: Iterable>(_: &mut I::Iterator<'a>) {}