a5cdd4aeb1
"Redundant" clones of `ManuallyDrop` are sometimes used for the side effect of invoking the clone, without running the drop implementation of the inner type. In other words, they aren't really redundant. For example, futures-rs crate: ```rust #[allow(clippy::redundant_clone)] // The clone here isn't actually redundant. unsafe fn increase_refcount<T: ArcWake>(data: *const ()) { // Retain Arc, but don't touch refcount by wrapping in ManuallyDrop let arc = mem::ManuallyDrop::new(Arc::<T>::from_raw(data as *const T)); // Now increase refcount, but don't drop new refcount either let _arc_clone: mem::ManuallyDrop<_> = arc.clone(); } ``` Ignore redundant clone lint for ManuallyDrop.
172 lines
4.6 KiB
Plaintext
172 lines
4.6 KiB
Plaintext
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:8:42
|
|
|
|
|
LL | let _s = ["lorem", "ipsum"].join(" ").to_string();
|
|
| ^^^^^^^^^^^^ help: remove this
|
|
|
|
|
= note: `-D clippy::redundant-clone` implied by `-D warnings`
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:8:14
|
|
|
|
|
LL | let _s = ["lorem", "ipsum"].join(" ").to_string();
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:11:15
|
|
|
|
|
LL | let _s = s.clone();
|
|
| ^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:11:14
|
|
|
|
|
LL | let _s = s.clone();
|
|
| ^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:14:15
|
|
|
|
|
LL | let _s = s.to_string();
|
|
| ^^^^^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:14:14
|
|
|
|
|
LL | let _s = s.to_string();
|
|
| ^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:17:15
|
|
|
|
|
LL | let _s = s.to_owned();
|
|
| ^^^^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:17:14
|
|
|
|
|
LL | let _s = s.to_owned();
|
|
| ^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:19:42
|
|
|
|
|
LL | let _s = Path::new("/a/b/").join("c").to_owned();
|
|
| ^^^^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:19:14
|
|
|
|
|
LL | let _s = Path::new("/a/b/").join("c").to_owned();
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:21:42
|
|
|
|
|
LL | let _s = Path::new("/a/b/").join("c").to_path_buf();
|
|
| ^^^^^^^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:21:14
|
|
|
|
|
LL | let _s = Path::new("/a/b/").join("c").to_path_buf();
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:23:29
|
|
|
|
|
LL | let _s = OsString::new().to_owned();
|
|
| ^^^^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:23:14
|
|
|
|
|
LL | let _s = OsString::new().to_owned();
|
|
| ^^^^^^^^^^^^^^^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:25:29
|
|
|
|
|
LL | let _s = OsString::new().to_os_string();
|
|
| ^^^^^^^^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:25:14
|
|
|
|
|
LL | let _s = OsString::new().to_os_string();
|
|
| ^^^^^^^^^^^^^^^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:32:19
|
|
|
|
|
LL | let _t = tup.0.clone();
|
|
| ^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:32:14
|
|
|
|
|
LL | let _t = tup.0.clone();
|
|
| ^^^^^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:62:22
|
|
|
|
|
LL | (a.clone(), a.clone())
|
|
| ^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:62:21
|
|
|
|
|
LL | (a.clone(), a.clone())
|
|
| ^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:122:15
|
|
|
|
|
LL | let _s = s.clone();
|
|
| ^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:122:14
|
|
|
|
|
LL | let _s = s.clone();
|
|
| ^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:123:15
|
|
|
|
|
LL | let _t = t.clone();
|
|
| ^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:123:14
|
|
|
|
|
LL | let _t = t.clone();
|
|
| ^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:133:19
|
|
|
|
|
LL | let _f = f.clone();
|
|
| ^^^^^^^^ help: remove this
|
|
|
|
|
note: this value is dropped without further use
|
|
--> $DIR/redundant_clone.rs:133:18
|
|
|
|
|
LL | let _f = f.clone();
|
|
| ^
|
|
|
|
error: redundant clone
|
|
--> $DIR/redundant_clone.rs:145:14
|
|
|
|
|
LL | let y = x.clone().join("matthias");
|
|
| ^^^^^^^^ help: remove this
|
|
|
|
|
note: cloned value is neither consumed nor mutated
|
|
--> $DIR/redundant_clone.rs:145:13
|
|
|
|
|
LL | let y = x.clone().join("matthias");
|
|
| ^^^^^^^^^
|
|
|
|
error: aborting due to 14 previous errors
|
|
|