Skip to content

Commit 505833c

Browse files
authored
Update retain to use &mut instead of &
1 parent ffbbbc8 commit 505833c

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -611,11 +611,11 @@ impl<A: Array> SmallVec<A> {
611611
/// In other words, remove all elements `e` such that `f(&e)` returns `false`.
612612
/// This method operates in place and preserves the order of the retained
613613
/// elements.
614-
pub fn retain<F: FnMut(&A::Item) -> bool>(&mut self, mut f: F) {
614+
pub fn retain<F: FnMut(&mut A::Item) -> bool>(&mut self, mut f: F) {
615615
let mut del = 0;
616616
let len = self.len;
617617
for i in 0..len {
618-
if !f(&self[i]) {
618+
if !f(&mut self[i]) {
619619
del += 1;
620620
} else if del > 0 {
621621
self.swap(i - del, i);
@@ -1615,15 +1615,15 @@ pub mod tests {
16151615
fn test_retain() {
16161616
// Test inline data storate
16171617
let mut sv: SmallVec<[i32; 5]> = SmallVec::from_slice(&[1, 2, 3, 3, 4]);
1618-
sv.retain(|&i| i != 3);
1618+
sv.retain(|&mut i| i != 3);
16191619
assert_eq!(sv.pop(), Some(4));
16201620
assert_eq!(sv.pop(), Some(2));
16211621
assert_eq!(sv.pop(), Some(1));
16221622
assert_eq!(sv.pop(), None);
16231623

16241624
// Test spilled data storage
16251625
let mut sv: SmallVec<[i32; 3]> = SmallVec::from_slice(&[1, 2, 3, 3, 4]);
1626-
sv.retain(|&i| i != 3);
1626+
sv.retain(|&mut i| i != 3);
16271627
assert_eq!(sv.pop(), Some(4));
16281628
assert_eq!(sv.pop(), Some(2));
16291629
assert_eq!(sv.pop(), Some(1));

0 commit comments

Comments
 (0)