error: implicitly cloning a `Vec` by calling `to_owned` on its dereferenced type
  --> tests/ui/implicit_clone.rs:65:13
   |
LL |     let _ = vec.to_owned();
   |             ^^^^^^^^^^^^^^ help: consider using: `vec.clone()`
   |
   = note: `-D clippy::implicit-clone` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::implicit_clone)]`

error: implicitly cloning a `Vec` by calling `to_vec` on its dereferenced type
  --> tests/ui/implicit_clone.rs:67:13
   |
LL |     let _ = vec.to_vec();
   |             ^^^^^^^^^^^^ help: consider using: `vec.clone()`

error: implicitly cloning a `Vec` by calling `to_vec` on its dereferenced type
  --> tests/ui/implicit_clone.rs:73:13
   |
LL |     let _ = vec_ref.to_vec();
   |             ^^^^^^^^^^^^^^^^ help: consider using: `vec_ref.clone()`

error: implicitly cloning a `String` by calling `to_owned` on its dereferenced type
  --> tests/ui/implicit_clone.rs:86:13
   |
LL |     let _ = str.to_owned();
   |             ^^^^^^^^^^^^^^ help: consider using: `str.clone()`

error: implicitly cloning a `Kitten` by calling `to_owned` on its dereferenced type
  --> tests/ui/implicit_clone.rs:91:13
   |
LL |     let _ = kitten.to_owned();
   |             ^^^^^^^^^^^^^^^^^ help: consider using: `kitten.clone()`

error: implicitly cloning a `PathBuf` by calling `to_owned` on its dereferenced type
  --> tests/ui/implicit_clone.rs:102:13
   |
LL |     let _ = pathbuf.to_owned();
   |             ^^^^^^^^^^^^^^^^^^ help: consider using: `pathbuf.clone()`

error: implicitly cloning a `PathBuf` by calling `to_path_buf` on its dereferenced type
  --> tests/ui/implicit_clone.rs:104:13
   |
LL |     let _ = pathbuf.to_path_buf();
   |             ^^^^^^^^^^^^^^^^^^^^^ help: consider using: `pathbuf.clone()`

error: implicitly cloning a `OsString` by calling `to_owned` on its dereferenced type
  --> tests/ui/implicit_clone.rs:108:13
   |
LL |     let _ = os_string.to_owned();
   |             ^^^^^^^^^^^^^^^^^^^^ help: consider using: `os_string.clone()`

error: implicitly cloning a `OsString` by calling `to_os_string` on its dereferenced type
  --> tests/ui/implicit_clone.rs:110:13
   |
LL |     let _ = os_string.to_os_string();
   |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `os_string.clone()`

error: implicitly cloning a `PathBuf` by calling `to_path_buf` on its dereferenced type
  --> tests/ui/implicit_clone.rs:122:13
   |
LL |     let _ = pathbuf_ref.to_path_buf();
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `(*pathbuf_ref).clone()`

error: implicitly cloning a `PathBuf` by calling `to_path_buf` on its dereferenced type
  --> tests/ui/implicit_clone.rs:126:13
   |
LL |     let _ = pathbuf_ref.to_path_buf();
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `(**pathbuf_ref).clone()`

error: aborting due to 11 previous errors

