error: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices --> $DIR/ptr_arg.rs:7:14 | LL | fn do_vec(x: &Vec) { | ^^^^^^^^^ help: change this to: `&[i64]` | = note: `-D clippy::ptr-arg` implied by `-D warnings` error: writing `&String` instead of `&str` involves a new object where a slice will do --> $DIR/ptr_arg.rs:16:14 | LL | fn do_str(x: &String) { | ^^^^^^^ help: change this to: `&str` error: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do --> $DIR/ptr_arg.rs:25:15 | LL | fn do_path(x: &PathBuf) { | ^^^^^^^^ help: change this to: `&Path` error: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices --> $DIR/ptr_arg.rs:38:18 | LL | fn do_vec(x: &Vec); | ^^^^^^^^^ help: change this to: `&[i64]` error: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices --> $DIR/ptr_arg.rs:51:14 | LL | fn cloned(x: &Vec) -> Vec { | ^^^^^^^^ | help: change this to | LL | fn cloned(x: &[u8]) -> Vec { | ^^^^^ help: change `x.clone()` to | LL | let e = x.to_owned(); | ^^^^^^^^^^^^ help: change `x.clone()` to | LL | x.to_owned() | error: writing `&String` instead of `&str` involves a new object where a slice will do --> $DIR/ptr_arg.rs:60:18 | LL | fn str_cloned(x: &String) -> String { | ^^^^^^^ | help: change this to | LL | fn str_cloned(x: &str) -> String { | ^^^^ help: change `x.clone()` to | LL | let a = x.to_string(); | ^^^^^^^^^^^^^ help: change `x.clone()` to | LL | let b = x.to_string(); | ^^^^^^^^^^^^^ help: change `x.clone()` to | LL | x.to_string() | error: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do --> $DIR/ptr_arg.rs:68:19 | LL | fn path_cloned(x: &PathBuf) -> PathBuf { | ^^^^^^^^ | help: change this to | LL | fn path_cloned(x: &Path) -> PathBuf { | ^^^^^ help: change `x.clone()` to | LL | let a = x.to_path_buf(); | ^^^^^^^^^^^^^^^ help: change `x.clone()` to | LL | let b = x.to_path_buf(); | ^^^^^^^^^^^^^^^ help: change `x.clone()` to | LL | x.to_path_buf() | error: writing `&String` instead of `&str` involves a new object where a slice will do --> $DIR/ptr_arg.rs:76:44 | LL | fn false_positive_capacity(x: &Vec, y: &String) { | ^^^^^^^ | help: change this to | LL | fn false_positive_capacity(x: &Vec, y: &str) { | ^^^^ help: change `y.clone()` to | LL | let b = y.to_string(); | ^^^^^^^^^^^^^ help: change `y.as_str()` to | LL | let c = y; | ^ error: using a reference to `Cow` is not recommended --> $DIR/ptr_arg.rs:90:25 | LL | fn test_cow_with_ref(c: &Cow<[i32]>) {} | ^^^^^^^^^^^ help: change this to: `&[i32]` error: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices --> $DIR/ptr_arg.rs:143:21 | LL | fn foo_vec(vec: &Vec) { | ^^^^^^^^ | help: change this to | LL | fn foo_vec(vec: &[u8]) { | ^^^^^ help: change `vec.clone()` to | LL | let _ = vec.to_owned().pop(); | ^^^^^^^^^^^^^^ help: change `vec.clone()` to | LL | let _ = vec.to_owned().clone(); | ^^^^^^^^^^^^^^ error: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do --> $DIR/ptr_arg.rs:148:23 | LL | fn foo_path(path: &PathBuf) { | ^^^^^^^^ | help: change this to | LL | fn foo_path(path: &Path) { | ^^^^^ help: change `path.clone()` to | LL | let _ = path.to_path_buf().pop(); | ^^^^^^^^^^^^^^^^^^ help: change `path.clone()` to | LL | let _ = path.to_path_buf().clone(); | ^^^^^^^^^^^^^^^^^^ error: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do --> $DIR/ptr_arg.rs:153:21 | LL | fn foo_str(str: &PathBuf) { | ^^^^^^^^ | help: change this to | LL | fn foo_str(str: &Path) { | ^^^^^ help: change `str.clone()` to | LL | let _ = str.to_path_buf().pop(); | ^^^^^^^^^^^^^^^^^ help: change `str.clone()` to | LL | let _ = str.to_path_buf().clone(); | ^^^^^^^^^^^^^^^^^ error: aborting due to 12 previous errors