From a44a059c3b65b5ce9c996db0995eb574e46fa314 Mon Sep 17 00:00:00 2001 From: The8472 Date: Sat, 15 May 2021 20:41:15 +0200 Subject: [PATCH] add regression test --- library/alloc/tests/vec.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/library/alloc/tests/vec.rs b/library/alloc/tests/vec.rs index aa606cd2315..6c71cf924d2 100644 --- a/library/alloc/tests/vec.rs +++ b/library/alloc/tests/vec.rs @@ -1094,6 +1094,18 @@ fn test_from_iter_specialization_panic_during_drop_leaks() { } } +// regression test for issue #85322. Peekable previously implemented InPlaceIterable, +// but due to an interaction with IntoIter's current Clone implementation it failed to uphold +// the contract. +#[test] +fn test_collect_after_iterator_clone() { + let v = vec![0; 5]; + let mut i = v.into_iter().peekable(); + i.peek(); + let v = i.clone().collect::>(); + assert!(v.len() <= v.capacity()); +} + #[test] fn test_cow_from() { let borrowed: &[_] = &["borrowed", "(slice)"];