1 // revisions: base extended
3 //[extended] check-pass
5 #![cfg_attr(extended, feature(generic_associated_types_extended))]
6 #![cfg_attr(extended, allow(incomplete_features))]
8 pub trait FromLendingIterator<A>: Sized {
9 fn from_iter<T: for<'x> LendingIterator<Item<'x> = A>>(iter: T) -> Self;
12 impl<A> FromLendingIterator<A> for Vec<A> {
13 fn from_iter<I: for<'x> LendingIterator<Item<'x> = A>>(mut iter: I) -> Self {
14 //[base]~^ impl has stricter
16 while let Some(item) = iter.next() {
23 pub trait LendingIterator {
27 fn next(&mut self) -> Option<Self::Item<'_>>;