4 // This gives us problems because `for<'a> I::Item<'a>: Debug` should mean "for
5 // all 'a where I::Item<'a> is WF", but really means "for all 'a possible"
9 pub trait LendingIterator {
15 pub struct WindowsMut<'x> {
19 impl<'y> LendingIterator for WindowsMut<'y> {
20 type Item<'this> = &'this mut () where 'y: 'this;
23 fn print_items<I>(_iter: I)
26 for<'a> I::Item<'a>: Debug,
32 //~^ temporary value dropped while borrowed
33 let windows = WindowsMut { slice };
34 print_items::<WindowsMut<'_>>(windows);