Skip to content

Commit 02899ce

Browse files
committed
Auto merge of #92070 - rukai:replace_vec_into_iter_with_array_into_iter, r=Mark-Simulacrum
Replace usages of vec![].into_iter with [].into_iter `[].into_iter` is idiomatic over `vec![].into_iter` because its simpler and faster (unless the vec is optimized away in which case it would be the same) So we should change all the implementation, documentation and tests to use it. I skipped: * `src/tools` - Those are copied in from upstream * `src/test/ui` - Hard to tell if `vec![].into_iter` was used intentionally or not here and not much benefit to changing it. * any case where `vec![].into_iter` was used because we specifically needed a `Vec::IntoIter<T>` * any case where it looked like we were intentionally using `vec![].into_iter` to test it.
2 parents 9cdf4bd + 3118c3f commit 02899ce

File tree

19 files changed

+82
-83
lines changed

19 files changed

+82
-83
lines changed

alloc/src/collections/btree/map/tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,7 @@ fn test_range_large() {
728728
#[test]
729729
fn test_range_inclusive_max_value() {
730730
let max = usize::MAX;
731-
let map: BTreeMap<_, _> = vec![(max, 0)].into_iter().collect();
731+
let map: BTreeMap<_, _> = [(max, 0)].into_iter().collect();
732732

733733
assert_eq!(map.range(max..=max).collect::<Vec<_>>(), &[(&max, &0)]);
734734
}
@@ -2128,7 +2128,7 @@ fn test_into_iter_drop_leak_height_1() {
21282128

21292129
#[test]
21302130
fn test_into_keys() {
2131-
let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')];
2131+
let vec = [(1, 'a'), (2, 'b'), (3, 'c')];
21322132
let map: BTreeMap<_, _> = vec.into_iter().collect();
21332133
let keys: Vec<_> = map.into_keys().collect();
21342134

alloc/src/collections/vec_deque/mod.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
669669
/// ```
670670
/// use std::collections::VecDeque;
671671
///
672-
/// let mut buf: VecDeque<i32> = vec![1].into_iter().collect();
672+
/// let mut buf: VecDeque<i32> = [1].into_iter().collect();
673673
/// buf.reserve_exact(10);
674674
/// assert!(buf.capacity() >= 11);
675675
/// ```
@@ -692,7 +692,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
692692
/// ```
693693
/// use std::collections::VecDeque;
694694
///
695-
/// let mut buf: VecDeque<i32> = vec![1].into_iter().collect();
695+
/// let mut buf: VecDeque<i32> = [1].into_iter().collect();
696696
/// buf.reserve(10);
697697
/// assert!(buf.capacity() >= 11);
698698
/// ```
@@ -1153,7 +1153,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
11531153
/// ```
11541154
/// use std::collections::VecDeque;
11551155
///
1156-
/// let v: VecDeque<_> = vec![1, 2, 3].into_iter().collect();
1156+
/// let v: VecDeque<_> = [1, 2, 3].into_iter().collect();
11571157
/// let range = v.range(2..).copied().collect::<VecDeque<_>>();
11581158
/// assert_eq!(range, [3]);
11591159
///
@@ -1188,7 +1188,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
11881188
/// ```
11891189
/// use std::collections::VecDeque;
11901190
///
1191-
/// let mut v: VecDeque<_> = vec![1, 2, 3].into_iter().collect();
1191+
/// let mut v: VecDeque<_> = [1, 2, 3].into_iter().collect();
11921192
/// for v in v.range_mut(2..) {
11931193
/// *v *= 2;
11941194
/// }
@@ -1235,7 +1235,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
12351235
/// ```
12361236
/// use std::collections::VecDeque;
12371237
///
1238-
/// let mut v: VecDeque<_> = vec![1, 2, 3].into_iter().collect();
1238+
/// let mut v: VecDeque<_> = [1, 2, 3].into_iter().collect();
12391239
/// let drained = v.drain(2..).collect::<VecDeque<_>>();
12401240
/// assert_eq!(drained, [3]);
12411241
/// assert_eq!(v, [1, 2]);
@@ -2025,7 +2025,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
20252025
/// ```
20262026
/// use std::collections::VecDeque;
20272027
///
2028-
/// let mut buf: VecDeque<_> = vec![1, 2, 3].into_iter().collect();
2028+
/// let mut buf: VecDeque<_> = [1, 2, 3].into_iter().collect();
20292029
/// let buf2 = buf.split_off(1);
20302030
/// assert_eq!(buf, [1]);
20312031
/// assert_eq!(buf2, [2, 3]);
@@ -2091,8 +2091,8 @@ impl<T, A: Allocator> VecDeque<T, A> {
20912091
/// ```
20922092
/// use std::collections::VecDeque;
20932093
///
2094-
/// let mut buf: VecDeque<_> = vec![1, 2].into_iter().collect();
2095-
/// let mut buf2: VecDeque<_> = vec![3, 4].into_iter().collect();
2094+
/// let mut buf: VecDeque<_> = [1, 2].into_iter().collect();
2095+
/// let mut buf2: VecDeque<_> = [3, 4].into_iter().collect();
20962096
/// buf.append(&mut buf2);
20972097
/// assert_eq!(buf, [1, 2, 3, 4]);
20982098
/// assert_eq!(buf2, []);

alloc/tests/linked_list.rs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ fn test_show() {
304304
let list: LinkedList<_> = (0..10).collect();
305305
assert_eq!(format!("{:?}", list), "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]");
306306

307-
let list: LinkedList<_> = vec!["just", "one", "test", "more"].iter().cloned().collect();
307+
let list: LinkedList<_> = ["just", "one", "test", "more"].into_iter().collect();
308308
assert_eq!(format!("{:?}", list), "[\"just\", \"one\", \"test\", \"more\"]");
309309
}
310310

@@ -336,7 +336,7 @@ fn test_extend() {
336336
assert_eq!(a.len(), 4);
337337
assert!(a.iter().eq(&[1, 2, 3, 4]));
338338

339-
let b: LinkedList<_> = vec![5, 6, 7].into_iter().collect();
339+
let b: LinkedList<_> = [5, 6, 7].into_iter().collect();
340340
a.extend(b); // specializes to `append`
341341

342342
assert_eq!(a.len(), 7);
@@ -375,7 +375,7 @@ fn drain_filter_empty() {
375375

376376
#[test]
377377
fn drain_filter_zst() {
378-
let mut list: LinkedList<_> = vec![(), (), (), (), ()].into_iter().collect();
378+
let mut list: LinkedList<_> = [(), (), (), (), ()].into_iter().collect();
379379
let initial_len = list.len();
380380
let mut count = 0;
381381

@@ -398,7 +398,7 @@ fn drain_filter_zst() {
398398

399399
#[test]
400400
fn drain_filter_false() {
401-
let mut list: LinkedList<_> = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
401+
let mut list: LinkedList<_> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
402402

403403
let initial_len = list.len();
404404
let mut count = 0;
@@ -421,7 +421,7 @@ fn drain_filter_false() {
421421

422422
#[test]
423423
fn drain_filter_true() {
424-
let mut list: LinkedList<_> = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
424+
let mut list: LinkedList<_> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
425425

426426
let initial_len = list.len();
427427
let mut count = 0;
@@ -447,7 +447,7 @@ fn drain_filter_true() {
447447
fn drain_filter_complex() {
448448
{
449449
// [+xxx++++++xxxxx++++x+x++]
450-
let mut list = vec![
450+
let mut list = [
451451
1, 2, 4, 6, 7, 9, 11, 13, 15, 17, 18, 20, 22, 24, 26, 27, 29, 31, 33, 34, 35, 36, 37,
452452
39,
453453
]
@@ -467,11 +467,10 @@ fn drain_filter_complex() {
467467

468468
{
469469
// [xxx++++++xxxxx++++x+x++]
470-
let mut list = vec![
471-
2, 4, 6, 7, 9, 11, 13, 15, 17, 18, 20, 22, 24, 26, 27, 29, 31, 33, 34, 35, 36, 37, 39,
472-
]
473-
.into_iter()
474-
.collect::<LinkedList<_>>();
470+
let mut list =
471+
[2, 4, 6, 7, 9, 11, 13, 15, 17, 18, 20, 22, 24, 26, 27, 29, 31, 33, 34, 35, 36, 37, 39]
472+
.into_iter()
473+
.collect::<LinkedList<_>>();
475474

476475
let removed = list.drain_filter(|x| *x % 2 == 0).collect::<Vec<_>>();
477476
assert_eq!(removed.len(), 10);
@@ -487,7 +486,7 @@ fn drain_filter_complex() {
487486
{
488487
// [xxx++++++xxxxx++++x+x]
489488
let mut list =
490-
vec![2, 4, 6, 7, 9, 11, 13, 15, 17, 18, 20, 22, 24, 26, 27, 29, 31, 33, 34, 35, 36]
489+
[2, 4, 6, 7, 9, 11, 13, 15, 17, 18, 20, 22, 24, 26, 27, 29, 31, 33, 34, 35, 36]
491490
.into_iter()
492491
.collect::<LinkedList<_>>();
493492

@@ -504,7 +503,7 @@ fn drain_filter_complex() {
504503

505504
{
506505
// [xxxxxxxxxx+++++++++++]
507-
let mut list = vec![2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
506+
let mut list = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
508507
.into_iter()
509508
.collect::<LinkedList<_>>();
510509

@@ -518,7 +517,7 @@ fn drain_filter_complex() {
518517

519518
{
520519
// [+++++++++++xxxxxxxxxx]
521-
let mut list = vec![1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
520+
let mut list = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
522521
.into_iter()
523522
.collect::<LinkedList<_>>();
524523

alloc/tests/string.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ fn test_from_iterator() {
489489
b.extend(u.chars());
490490
assert_eq!(s, b);
491491

492-
let c: String = vec![t, u].into_iter().collect();
492+
let c: String = [t, u].into_iter().collect();
493493
assert_eq!(s, c);
494494

495495
let mut d = t.to_string();

alloc/tests/vec.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -449,10 +449,10 @@ fn zero_sized_values() {
449449

450450
#[test]
451451
fn test_partition() {
452-
assert_eq!(vec![].into_iter().partition(|x: &i32| *x < 3), (vec![], vec![]));
453-
assert_eq!(vec![1, 2, 3].into_iter().partition(|x| *x < 4), (vec![1, 2, 3], vec![]));
454-
assert_eq!(vec![1, 2, 3].into_iter().partition(|x| *x < 2), (vec![1], vec![2, 3]));
455-
assert_eq!(vec![1, 2, 3].into_iter().partition(|x| *x < 0), (vec![], vec![1, 2, 3]));
452+
assert_eq!([].into_iter().partition(|x: &i32| *x < 3), (vec![], vec![]));
453+
assert_eq!([1, 2, 3].into_iter().partition(|x| *x < 4), (vec![1, 2, 3], vec![]));
454+
assert_eq!([1, 2, 3].into_iter().partition(|x| *x < 2), (vec![1], vec![2, 3]));
455+
assert_eq!([1, 2, 3].into_iter().partition(|x| *x < 0), (vec![], vec![1, 2, 3]));
456456
}
457457

458458
#[test]
@@ -924,7 +924,7 @@ fn test_into_iter_debug() {
924924

925925
#[test]
926926
fn test_into_iter_count() {
927-
assert_eq!(vec![1, 2, 3].into_iter().count(), 3);
927+
assert_eq!([1, 2, 3].into_iter().count(), 3);
928928
}
929929

930930
#[test]
@@ -933,7 +933,7 @@ fn test_into_iter_clone() {
933933
let v: Vec<i32> = it.collect();
934934
assert_eq!(&v[..], slice);
935935
}
936-
let mut it = vec![1, 2, 3].into_iter();
936+
let mut it = [1, 2, 3].into_iter();
937937
iter_equal(it.clone(), &[1, 2, 3]);
938938
assert_eq!(it.next(), Some(1));
939939
let mut it = it.rev();
@@ -972,7 +972,7 @@ fn test_into_iter_leak() {
972972

973973
#[test]
974974
fn test_into_iter_advance_by() {
975-
let mut i = vec![1, 2, 3, 4, 5].into_iter();
975+
let mut i = [1, 2, 3, 4, 5].into_iter();
976976
i.advance_by(0).unwrap();
977977
i.advance_back_by(0).unwrap();
978978
assert_eq!(i.as_slice(), [1, 2, 3, 4, 5]);
@@ -1799,7 +1799,7 @@ fn test_stable_pointers() {
17991799
assert_eq!(*v0, 13);
18001800
next_then_drop(v.splice(5..8, vec![1])); // replacement is smaller than original range
18011801
assert_eq!(*v0, 13);
1802-
next_then_drop(v.splice(5..6, vec![1; 10].into_iter().filter(|_| true))); // lower bound not exact
1802+
next_then_drop(v.splice(5..6, [1; 10].into_iter().filter(|_| true))); // lower bound not exact
18031803
assert_eq!(*v0, 13);
18041804

18051805
// spare_capacity_mut

alloc/tests/vec_deque.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -927,8 +927,8 @@ fn test_as_mut_slices() {
927927

928928
#[test]
929929
fn test_append() {
930-
let mut a: VecDeque<_> = vec![1, 2, 3].into_iter().collect();
931-
let mut b: VecDeque<_> = vec![4, 5, 6].into_iter().collect();
930+
let mut a: VecDeque<_> = [1, 2, 3].into_iter().collect();
931+
let mut b: VecDeque<_> = [4, 5, 6].into_iter().collect();
932932

933933
// normal append
934934
a.append(&mut b);
@@ -1209,7 +1209,7 @@ fn test_try_reserve() {
12091209

12101210
{
12111211
// Same basic idea, but with non-zero len
1212-
let mut ten_bytes: VecDeque<u8> = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
1212+
let mut ten_bytes: VecDeque<u8> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
12131213

12141214
if let Err(CapacityOverflow) = ten_bytes.try_reserve(MAX_CAP - 10).map_err(|e| e.kind()) {
12151215
panic!("isize::MAX shouldn't trigger an overflow!");
@@ -1240,7 +1240,7 @@ fn test_try_reserve() {
12401240

12411241
{
12421242
// Same basic idea, but with interesting type size
1243-
let mut ten_u32s: VecDeque<u32> = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
1243+
let mut ten_u32s: VecDeque<u32> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
12441244

12451245
if let Err(CapacityOverflow) = ten_u32s.try_reserve(MAX_CAP / 4 - 10).map_err(|e| e.kind())
12461246
{
@@ -1322,7 +1322,7 @@ fn test_try_reserve_exact() {
13221322
}
13231323

13241324
{
1325-
let mut ten_bytes: VecDeque<u8> = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
1325+
let mut ten_bytes: VecDeque<u8> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
13261326

13271327
if let Err(CapacityOverflow) =
13281328
ten_bytes.try_reserve_exact(MAX_CAP - 10).map_err(|e| e.kind())
@@ -1355,7 +1355,7 @@ fn test_try_reserve_exact() {
13551355
}
13561356

13571357
{
1358-
let mut ten_u32s: VecDeque<u32> = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
1358+
let mut ten_u32s: VecDeque<u32> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].into_iter().collect();
13591359

13601360
if let Err(CapacityOverflow) =
13611361
ten_u32s.try_reserve_exact(MAX_CAP / 4 - 10).map_err(|e| e.kind())

core/src/convert/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ pub use num::FloatToInt;
9191
/// ```rust
9292
/// use std::convert::identity;
9393
///
94-
/// let iter = vec![Some(1), None, Some(3)].into_iter();
94+
/// let iter = [Some(1), None, Some(3)].into_iter();
9595
/// let filtered = iter.filter_map(identity).collect::<Vec<_>>();
9696
/// assert_eq!(vec![1, 3], filtered);
9797
/// ```

core/src/iter/adapters/map.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use crate::ops::Try;
1919
/// you can also [`map`] backwards:
2020
///
2121
/// ```rust
22-
/// let v: Vec<i32> = vec![1, 2, 3].into_iter().map(|x| x + 1).rev().collect();
22+
/// let v: Vec<i32> = [1, 2, 3].into_iter().map(|x| x + 1).rev().collect();
2323
///
2424
/// assert_eq!(v, [4, 3, 2]);
2525
/// ```
@@ -32,7 +32,7 @@ use crate::ops::Try;
3232
/// ```rust
3333
/// let mut c = 0;
3434
///
35-
/// for pair in vec!['a', 'b', 'c'].into_iter()
35+
/// for pair in ['a', 'b', 'c'].into_iter()
3636
/// .map(|letter| { c += 1; (letter, c) }) {
3737
/// println!("{:?}", pair);
3838
/// }
@@ -49,7 +49,7 @@ use crate::ops::Try;
4949
/// ```rust
5050
/// let mut c = 0;
5151
///
52-
/// for pair in vec!['a', 'b', 'c'].into_iter()
52+
/// for pair in ['a', 'b', 'c'].into_iter()
5353
/// .map(|letter| { c += 1; (letter, c) })
5454
/// .rev() {
5555
/// println!("{:?}", pair);

core/src/iter/traits/collect.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ pub trait FromIterator<A>: Sized {
124124
/// Basic usage:
125125
///
126126
/// ```
127-
/// let v = vec![1, 2, 3];
127+
/// let v = [1, 2, 3];
128128
/// let mut iter = v.into_iter();
129129
///
130130
/// assert_eq!(Some(1), iter.next());
@@ -215,7 +215,7 @@ pub trait IntoIterator {
215215
/// Basic usage:
216216
///
217217
/// ```
218-
/// let v = vec![1, 2, 3];
218+
/// let v = [1, 2, 3];
219219
/// let mut iter = v.into_iter();
220220
///
221221
/// assert_eq!(Some(1), iter.next());

core/src/iter/traits/iterator.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ pub trait Iterator {
590590
/// #[derive(PartialEq, Debug)]
591591
/// struct NotClone(usize);
592592
///
593-
/// let v = vec![NotClone(0), NotClone(1), NotClone(2)];
593+
/// let v = [NotClone(0), NotClone(1), NotClone(2)];
594594
/// let mut it = v.into_iter().intersperse_with(|| NotClone(99));
595595
///
596596
/// assert_eq!(it.next(), Some(NotClone(0))); // The first element from `v`.
@@ -1270,7 +1270,7 @@ pub trait Iterator {
12701270
/// `take` will limit itself to the size of the underlying iterator:
12711271
///
12721272
/// ```
1273-
/// let v = vec![1, 2];
1273+
/// let v = [1, 2];
12741274
/// let mut iter = v.into_iter().take(5);
12751275
/// assert_eq!(iter.next(), Some(1));
12761276
/// assert_eq!(iter.next(), Some(2));
@@ -1604,7 +1604,7 @@ pub trait Iterator {
16041604
/// Basic usage:
16051605
///
16061606
/// ```
1607-
/// let mut words = vec!["hello", "world", "of", "Rust"].into_iter();
1607+
/// let mut words = ["hello", "world", "of", "Rust"].into_iter();
16081608
///
16091609
/// // Take the first two words.
16101610
/// let hello_world: Vec<_> = words.by_ref().take(2).collect();
@@ -2700,7 +2700,7 @@ pub trait Iterator {
27002700
/// incomparable. You can work around this by using [`Iterator::reduce`]:
27012701
/// ```
27022702
/// assert_eq!(
2703-
/// vec![2.4, f32::NAN, 1.3]
2703+
/// [2.4, f32::NAN, 1.3]
27042704
/// .into_iter()
27052705
/// .reduce(f32::max)
27062706
/// .unwrap(),
@@ -2738,7 +2738,7 @@ pub trait Iterator {
27382738
/// incomparable. You can work around this by using [`Iterator::reduce`]:
27392739
/// ```
27402740
/// assert_eq!(
2741-
/// vec![2.4, f32::NAN, 1.3]
2741+
/// [2.4, f32::NAN, 1.3]
27422742
/// .into_iter()
27432743
/// .reduce(f32::min)
27442744
/// .unwrap(),

0 commit comments

Comments
 (0)