summaryrefslogtreecommitdiffstats
path: root/src/test/ui/generic-associated-types/extended/lending_iterator.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/generic-associated-types/extended/lending_iterator.rs')
-rw-r--r--src/test/ui/generic-associated-types/extended/lending_iterator.rs38
1 files changed, 0 insertions, 38 deletions
diff --git a/src/test/ui/generic-associated-types/extended/lending_iterator.rs b/src/test/ui/generic-associated-types/extended/lending_iterator.rs
deleted file mode 100644
index 247761dd0..000000000
--- a/src/test/ui/generic-associated-types/extended/lending_iterator.rs
+++ /dev/null
@@ -1,38 +0,0 @@
-// revisions: base extended
-//[base] check-fail
-//[extended] check-pass
-
-#![cfg_attr(extended, feature(generic_associated_types_extended))]
-#![cfg_attr(extended, allow(incomplete_features))]
-
-pub trait FromLendingIterator<A>: Sized {
- fn from_iter<T: for<'x> LendingIterator<Item<'x> = A>>(iter: T) -> Self;
-}
-
-impl<A> FromLendingIterator<A> for Vec<A> {
- fn from_iter<I: for<'x> LendingIterator<Item<'x> = A>>(mut iter: I) -> Self {
- //[base]~^ impl has stricter
- let mut v = vec![];
- while let Some(item) = iter.next() {
- v.push(item);
- }
- v
- }
-}
-
-pub trait LendingIterator {
- type Item<'z>
- where
- Self: 'z;
- fn next(&mut self) -> Option<Self::Item<'_>>;
-
- fn collect<A, B: FromLendingIterator<A>>(self) -> B
- where
- Self: Sized,
- Self: for<'q> LendingIterator<Item<'q> = A>,
- {
- <B as FromLendingIterator<A>>::from_iter(self)
- }
-}
-
-fn main() {}