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<i64>) {
   |              ^^^^^^^^^ 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<i64>);
   |                  ^^^^^^^^^ 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<u8>) -> Vec<u8> {
   |              ^^^^^^^^
   |
help: change this to
   |
LL | fn cloned(x: &[u8]) -> Vec<u8> {
   |              ^^^^^
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<u8>, y: &String) {
   |                                            ^^^^^^^
   |
help: change this to
   |
LL | fn false_positive_capacity(x: &Vec<u8>, 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<u8>) {
   |                     ^^^^^^^^
   |
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

