Skip to content

Commit

Permalink
Update ui test for map_clone lint
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed Jan 7, 2024
1 parent 6f31f0c commit b5f7a27
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 7 deletions.
5 changes: 5 additions & 0 deletions tests/ui/map_clone.fixed
Expand Up @@ -4,6 +4,7 @@
clippy::iter_cloned_collect,
clippy::many_single_char_names,
clippy::redundant_clone,
clippy::redundant_closure,
clippy::useless_vec
)]

Expand Down Expand Up @@ -60,4 +61,8 @@ fn main() {

let _ = Some(RefCell::new(String::new()).borrow()).map(|s| s.clone());
}

let x = Some(String::new());
let y = x.as_ref().cloned();
//~^ ERROR: you are explicitly cloning with `.map()`
}
5 changes: 5 additions & 0 deletions tests/ui/map_clone.rs
Expand Up @@ -4,6 +4,7 @@
clippy::iter_cloned_collect,
clippy::many_single_char_names,
clippy::redundant_clone,
clippy::redundant_closure,
clippy::useless_vec
)]

Expand Down Expand Up @@ -60,4 +61,8 @@ fn main() {

let _ = Some(RefCell::new(String::new()).borrow()).map(|s| s.clone());
}

let x = Some(String::new());
let y = x.as_ref().map(|x| String::clone(x));
//~^ ERROR: you are explicitly cloning with `.map()`
}
20 changes: 13 additions & 7 deletions tests/ui/map_clone.stderr
@@ -1,5 +1,5 @@
error: you are using an explicit closure for copying elements
--> $DIR/map_clone.rs:11:22
--> $DIR/map_clone.rs:12:22
|
LL | let _: Vec<i8> = vec![5_i8; 6].iter().map(|x| *x).collect();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `vec![5_i8; 6].iter().copied()`
Expand All @@ -8,34 +8,40 @@ LL | let _: Vec<i8> = vec![5_i8; 6].iter().map(|x| *x).collect();
= help: to override `-D warnings` add `#[allow(clippy::map_clone)]`

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

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

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

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

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

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

error: aborting due to 7 previous errors

0 comments on commit b5f7a27

Please sign in to comment.