Skip to content

Commit 2d3c2e3

Browse files
author
Clar Fon
committed
Test IntoIter::clone
1 parent 46b6453 commit 2d3c2e3

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

tests/tests.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ fn test_drop() {
5555

5656
let flag = &Cell::new(0);
5757

58+
#[derive(Clone)]
5859
struct Bump<'a>(&'a Cell<i32>);
5960

6061
impl<'a> Drop for Bump<'a> {
@@ -105,6 +106,24 @@ fn test_drop() {
105106
assert_eq!(flag.get(), 3);
106107
}
107108

109+
// test cloning into_iter
110+
flag.set(0);
111+
{
112+
let mut array = ArrayVec::<[_; 3]>::new();
113+
array.push(Bump(flag));
114+
array.push(Bump(flag));
115+
array.push(Bump(flag));
116+
let mut iter = array.into_iter();
117+
assert_eq!(flag.get(), 0);
118+
iter.next();
119+
assert_eq!(flag.get(), 1);
120+
let clone = iter.clone();
121+
assert_eq!(flag.get(), 1);
122+
drop(clone);
123+
assert_eq!(flag.get(), 3);
124+
drop(iter);
125+
assert_eq!(flag.get(), 5);
126+
}
108127
}
109128

110129
#[test]

0 commit comments

Comments
 (0)