1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
trait LendingIterator { type Item<'a> where Self: 'a; } impl LendingIterator for &str { type Item<'a> = () where Self:'a; } fn trivial_bound<I>(_: I) where I: LendingIterator, for<'a> I::Item<'a>: Sized, { } fn fails(iter: &str) { trivial_bound(iter); //~^ borrowed data escapes } fn main() {}