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.
This commit is contained in:
Yuki Okushi 2021-02-13 16:36:40 +09:00 committed by GitHub
commit 4cb381037e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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