Skip to content

Commit 4cb3810

Browse files
authoredFeb 13, 2021
Rollup merge of #81811 - schteve:fix_vec_retain_doc_test, r=m-ou-se
Fix doc test for Vec::retain(), now passes clippy::eval_order_dependence Doc test for Vec::retain() works correctly but is flagged by clippy::eval_order_dependence. Fix avoids the issue by using an iterator instead of an index.
2 parents 21cbbdc + 0488afd commit 4cb3810

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed
 

‎library/alloc/src/vec/mod.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1385,13 +1385,14 @@ impl<T, A: Allocator> Vec<T, A> {
13851385
/// assert_eq!(vec, [2, 4]);
13861386
/// ```
13871387
///
1388-
/// The exact order may be useful for tracking external state, like an index.
1388+
/// Because the elements are visited exactly once in the original order,
1389+
/// external state may be used to decide which elements to keep.
13891390
///
13901391
/// ```
13911392
/// let mut vec = vec![1, 2, 3, 4, 5];
13921393
/// let keep = [false, true, true, false, true];
1393-
/// let mut i = 0;
1394-
/// vec.retain(|_| (keep[i], i += 1).0);
1394+
/// let mut iter = keep.iter();
1395+
/// vec.retain(|_| *iter.next().unwrap());
13951396
/// assert_eq!(vec, [2, 3, 5]);
13961397
/// ```
13971398
#[stable(feature = "rust1", since = "1.0.0")]

0 commit comments

Comments
 (0)
Please sign in to comment.