rust/tests/ui/unnecessary_struct_initialization.stderr
Philipp Gesang 296dcf09fb
unnecessary_struct_initialization: extend to assignments moving all fields
This lint makes Clippy warn about situations where an owned
struct is essentially recreated by moving all its fields into a
new instance of the struct. Until now this lint only triggered
for structs recreated from a base struct.

NB: The new functionality too will cause false positives for the
situation where a non-copy struct consisting of all copy members
is touched again in subsequent code.
2024-07-09 13:53:11 +02:00

78 lines
2.5 KiB
Plaintext

error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:37:9
|
LL | Self { ..*self }
| ^^^^^^^^^^^^^^^^ help: replace with: `*self`
|
= note: `-D clippy::unnecessary-struct-initialization` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::unnecessary_struct_initialization)]`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:44:17
|
LL | let mut b = S { ..a };
| ^^^^^^^^^ help: replace with: `a`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:47:18
|
LL | let c = &mut S { ..b };
| ^^^^^^^^^ help: replace with: `b`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:55:14
|
LL | let g = &S { ..f };
| ^^^^^^^^^ help: replace with: `f`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:58:18
|
LL | let h = &mut S {
| __________________^
LL | | ..*Box::new(S { f: String::from("foo") })
LL | | };
| |_____^ help: replace with: `*Box::new(S { f: String::from("foo") })`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:77:18
|
LL | let p = &mut T {
| __________________^
LL | | ..*Box::new(T { f: 5 })
LL | | };
| |_____^ help: replace with: `*Box::new(T { f: 5 })`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:83:13
|
LL | let r = W { f1: q.f1, f2: q.f2 };
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `q`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:94:13
|
LL | let w = W { f1: v.f1, ..v };
| ^^^^^^^^^^^^^^^^^^^ help: replace with: `v`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:102:14
|
LL | let r2 = r1.start..r1.end;
| ^^^^^^^^^^^^^^^^ help: replace with: `r1`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:115:14
|
LL | let d = &W { f1: c.f1, f2: c.f2 };
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `c`
error: unnecessary struct building
--> tests/ui/unnecessary_struct_initialization.rs:123:14
|
LL | let h = &W { f1: g.f1, ..g };
| ^^^^^^^^^^^^^^^^^^^ help: replace with: `g`
error: aborting due to 11 previous errors