Skip to content

Commit b131a54

Browse files
authored
Merge pull request rust-lang#179 from cuviper/copied
Prefer copied() iterators instead of cloned()
2 parents 4a9e887 + a781b14 commit b131a54

File tree

7 files changed

+18
-18
lines changed

7 files changed

+18
-18
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ bench = false
3434
autocfg = "1"
3535
[dependencies]
3636
serde = { version = "1.0", optional = true, default-features = false }
37-
rayon = { version = "1.0", optional = true }
37+
rayon = { version = "1.2", optional = true }
3838

3939
[dependencies.hashbrown]
4040
version = "0.9.1"

benches/bench.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ fn indexmap_merge_shuffle(b: &mut Bencher) {
561561
#[bench]
562562
fn swap_remove_indexmap_100_000(b: &mut Bencher) {
563563
let map = IMAP_100K.clone();
564-
let mut keys = Vec::from_iter(map.keys().cloned());
564+
let mut keys = Vec::from_iter(map.keys().copied());
565565
let mut rng = small_rng();
566566
keys.shuffle(&mut rng);
567567

@@ -578,7 +578,7 @@ fn swap_remove_indexmap_100_000(b: &mut Bencher) {
578578
#[bench]
579579
fn shift_remove_indexmap_100_000_few(b: &mut Bencher) {
580580
let map = IMAP_100K.clone();
581-
let mut keys = Vec::from_iter(map.keys().cloned());
581+
let mut keys = Vec::from_iter(map.keys().copied());
582582
let mut rng = small_rng();
583583
keys.shuffle(&mut rng);
584584
keys.truncate(50);

src/map.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1674,7 +1674,7 @@ mod tests {
16741674
fn keys() {
16751675
let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')];
16761676
let map: IndexMap<_, _> = vec.into_iter().collect();
1677-
let keys: Vec<_> = map.keys().cloned().collect();
1677+
let keys: Vec<_> = map.keys().copied().collect();
16781678
assert_eq!(keys.len(), 3);
16791679
assert!(keys.contains(&1));
16801680
assert!(keys.contains(&2));
@@ -1685,7 +1685,7 @@ mod tests {
16851685
fn values() {
16861686
let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')];
16871687
let map: IndexMap<_, _> = vec.into_iter().collect();
1688-
let values: Vec<_> = map.values().cloned().collect();
1688+
let values: Vec<_> = map.values().copied().collect();
16891689
assert_eq!(values.len(), 3);
16901690
assert!(values.contains(&'a'));
16911691
assert!(values.contains(&'b'));
@@ -1699,7 +1699,7 @@ mod tests {
16991699
for value in map.values_mut() {
17001700
*value *= 2
17011701
}
1702-
let values: Vec<_> = map.values().cloned().collect();
1702+
let values: Vec<_> = map.values().copied().collect();
17031703
assert_eq!(values.len(), 3);
17041704
assert!(values.contains(&2));
17051705
assert!(values.contains(&4));

src/rayon/map.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ mod tests {
464464
fn keys() {
465465
let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')];
466466
let map: IndexMap<_, _> = vec.into_par_iter().collect();
467-
let keys: Vec<_> = map.par_keys().cloned().collect();
467+
let keys: Vec<_> = map.par_keys().copied().collect();
468468
assert_eq!(keys.len(), 3);
469469
assert!(keys.contains(&1));
470470
assert!(keys.contains(&2));
@@ -475,7 +475,7 @@ mod tests {
475475
fn values() {
476476
let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')];
477477
let map: IndexMap<_, _> = vec.into_par_iter().collect();
478-
let values: Vec<_> = map.par_values().cloned().collect();
478+
let values: Vec<_> = map.par_values().copied().collect();
479479
assert_eq!(values.len(), 3);
480480
assert!(values.contains(&'a'));
481481
assert!(values.contains(&'b'));
@@ -487,7 +487,7 @@ mod tests {
487487
let vec = vec![(1, 1), (2, 2), (3, 3)];
488488
let mut map: IndexMap<_, _> = vec.into_par_iter().collect();
489489
map.par_values_mut().for_each(|value| *value *= 2);
490-
let values: Vec<_> = map.par_values().cloned().collect();
490+
let values: Vec<_> = map.par_values().copied().collect();
491491
assert_eq!(values.len(), 3);
492492
assert!(values.contains(&2));
493493
assert!(values.contains(&4));

src/rayon/set.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,7 @@ mod tests {
622622
I1: ParallelIterator<Item = &'a i32>,
623623
I2: Iterator<Item = i32>,
624624
{
625-
let v1: Vec<_> = iter1.cloned().collect();
625+
let v1: Vec<_> = iter1.copied().collect();
626626
let v2: Vec<_> = iter2.collect();
627627
assert_eq!(v1, v2);
628628
}

src/set.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -840,7 +840,7 @@ where
840840
S: BuildHasher,
841841
{
842842
fn extend<I: IntoIterator<Item = &'a T>>(&mut self, iterable: I) {
843-
let iter = iterable.into_iter().cloned(); // FIXME: use `copied` in Rust 1.36
843+
let iter = iterable.into_iter().copied();
844844
self.extend(iter);
845845
}
846846
}
@@ -1560,7 +1560,7 @@ mod tests {
15601560
I1: Iterator<Item = &'a i32>,
15611561
I2: Iterator<Item = i32>,
15621562
{
1563-
assert!(iter1.cloned().eq(iter2));
1563+
assert!(iter1.copied().eq(iter2));
15641564
}
15651565

15661566
let set_a: IndexSet<_> = (0..3).collect();

tests/quick.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ where
3030
I: IntoIterator<Item = &'a T>,
3131
T: Copy + Hash + Eq,
3232
{
33-
iter.into_iter().cloned().collect()
33+
iter.into_iter().copied().collect()
3434
}
3535

3636
fn indexmap<'a, T: 'a, I>(iter: I) -> IndexMap<T, ()>
3737
where
3838
I: IntoIterator<Item = &'a T>,
3939
T: Copy + Hash + Eq,
4040
{
41-
IndexMap::from_iter(iter.into_iter().cloned().map(|k| (k, ())))
41+
IndexMap::from_iter(iter.into_iter().copied().map(|k| (k, ())))
4242
}
4343

4444
quickcheck! {
@@ -123,7 +123,7 @@ quickcheck! {
123123

124124
// First see if `Vec::drain` is happy with this range.
125125
let result = std::panic::catch_unwind(|| {
126-
let mut keys: Vec<u8> = map.keys().cloned().collect();
126+
let mut keys: Vec<u8> = map.keys().copied().collect();
127127
keys.drain(range);
128128
keys
129129
});
@@ -155,7 +155,7 @@ quickcheck! {
155155
let mut iter = map.keys();
156156
for &key in insert.iter().unique() {
157157
if elements.contains(&key) {
158-
assert_eq!(Some(key), iter.next().cloned());
158+
assert_eq!(Some(&key), iter.next());
159159
}
160160
}
161161

@@ -165,7 +165,7 @@ quickcheck! {
165165

166166
fn indexing(insert: Vec<u8>) -> bool {
167167
let mut map: IndexMap<_, _> = insert.into_iter().map(|x| (x, x)).collect();
168-
let set: IndexSet<_> = map.keys().cloned().collect();
168+
let set: IndexSet<_> = map.keys().copied().collect();
169169
assert_eq!(map.len(), set.len());
170170

171171
for (i, &key) in set.iter().enumerate() {
@@ -295,7 +295,7 @@ quickcheck! {
295295
let mut reference = HashMap::new();
296296
do_ops(&ops, &mut map, &mut reference);
297297
let mut visit = IndexMap::new();
298-
let keys = Vec::from_iter(map.keys().cloned());
298+
let keys = Vec::from_iter(map.keys().copied());
299299
for (k, v) in keys.iter().zip(map.values_mut()) {
300300
assert_eq!(&reference[k], v);
301301
assert!(!visit.contains_key(k));

0 commit comments

Comments
 (0)