Skip to content

Commit f66e940

Browse files
Update ui test for map_clone lint
1 parent 78aa2e2 commit f66e940

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

tests/ui/map_clone.fixed

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
clippy::iter_cloned_collect,
55
clippy::many_single_char_names,
66
clippy::redundant_clone,
7+
clippy::redundant_closure,
78
clippy::useless_vec
89
)]
910

@@ -60,4 +61,8 @@ fn main() {
6061

6162
let _ = Some(RefCell::new(String::new()).borrow()).map(|s| s.clone());
6263
}
64+
65+
let x = Some(String::new());
66+
let y = x.as_ref().cloned();
67+
//~^ ERROR: you are explicitly cloning with `.map()`
6368
}

tests/ui/map_clone.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
clippy::iter_cloned_collect,
55
clippy::many_single_char_names,
66
clippy::redundant_clone,
7+
clippy::redundant_closure,
78
clippy::useless_vec
89
)]
910

@@ -60,4 +61,8 @@ fn main() {
6061

6162
let _ = Some(RefCell::new(String::new()).borrow()).map(|s| s.clone());
6263
}
64+
65+
let x = Some(String::new());
66+
let y = x.as_ref().map(|x| String::clone(x));
67+
//~^ ERROR: you are explicitly cloning with `.map()`
6368
}

tests/ui/map_clone.stderr

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error: you are using an explicit closure for copying elements
2-
--> $DIR/map_clone.rs:11:22
2+
--> $DIR/map_clone.rs:12:22
33
|
44
LL | let _: Vec<i8> = vec![5_i8; 6].iter().map(|x| *x).collect();
55
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `vec![5_i8; 6].iter().copied()`
@@ -8,34 +8,40 @@ LL | let _: Vec<i8> = vec![5_i8; 6].iter().map(|x| *x).collect();
88
= help: to override `-D warnings` add `#[allow(clippy::map_clone)]`
99

1010
error: you are using an explicit closure for cloning elements
11-
--> $DIR/map_clone.rs:12:26
11+
--> $DIR/map_clone.rs:13:26
1212
|
1313
LL | let _: Vec<String> = vec![String::new()].iter().map(|x| x.clone()).collect();
1414
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `vec![String::new()].iter().cloned()`
1515

1616
error: you are using an explicit closure for copying elements
17-
--> $DIR/map_clone.rs:13:23
17+
--> $DIR/map_clone.rs:14:23
1818
|
1919
LL | let _: Vec<u32> = vec![42, 43].iter().map(|&x| x).collect();
2020
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `vec![42, 43].iter().copied()`
2121

2222
error: you are using an explicit closure for copying elements
23-
--> $DIR/map_clone.rs:15:26
23+
--> $DIR/map_clone.rs:16:26
2424
|
2525
LL | let _: Option<u64> = Some(&16).map(|b| *b);
2626
| ^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `Some(&16).copied()`
2727

2828
error: you are using an explicit closure for copying elements
29-
--> $DIR/map_clone.rs:16:25
29+
--> $DIR/map_clone.rs:17:25
3030
|
3131
LL | let _: Option<u8> = Some(&1).map(|x| x.clone());
3232
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `Some(&1).copied()`
3333

3434
error: you are needlessly cloning iterator elements
35-
--> $DIR/map_clone.rs:27:29
35+
--> $DIR/map_clone.rs:28:29
3636
|
3737
LL | let _ = std::env::args().map(|v| v.clone());
3838
| ^^^^^^^^^^^^^^^^^^^ help: remove the `map` call
3939

40-
error: aborting due to 6 previous errors
40+
error: you are explicitly cloning with `.map()`
41+
--> $DIR/map_clone.rs:66:13
42+
|
43+
LL | let y = x.as_ref().map(|x| String::clone(x));
44+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `x.as_ref().cloned()`
45+
46+
error: aborting due to 7 previous errors
4147

0 commit comments

Comments
 (0)