3 // This should pass, but has a missed normalization due to HRTB.
5 #![feature(generic_associated_types)]
8 type Iterator<'a> where Self: 'a;
9 fn iter(&self) -> Self::Iterator<'_>;
12 struct SomeImplementation();
14 impl Iterable for SomeImplementation {
15 type Iterator<'a> = std::iter::Empty<usize>;
16 fn iter(&self) -> Self::Iterator<'_> {
21 fn do_something<I: Iterable>(i: I, mut f: impl for<'a> Fn(&mut I::Iterator<'a>)) {
26 do_something(SomeImplementation(), |_| ());
27 do_something(SomeImplementation(), test);
31 fn test<'a, I: Iterable>(_: &mut I::Iterator<'a>) {}