2018-07-28 17:34:52 +02:00
|
|
|
#![warn(clippy::needless_update)]
|
2023-03-24 14:04:35 +01:00
|
|
|
#![allow(clippy::no_effect, clippy::unnecessary_struct_initialization)]
|
2015-10-22 00:25:16 +09:00
|
|
|
|
|
|
|
struct S {
|
|
|
|
pub a: i32,
|
|
|
|
pub b: i32,
|
|
|
|
}
|
|
|
|
|
2020-12-20 17:19:49 +01:00
|
|
|
#[non_exhaustive]
|
|
|
|
struct T {
|
|
|
|
pub x: i32,
|
|
|
|
pub y: i32,
|
|
|
|
}
|
|
|
|
|
2015-10-22 00:25:16 +09:00
|
|
|
fn main() {
|
|
|
|
let base = S { a: 0, b: 0 };
|
|
|
|
S { ..base }; // no error
|
|
|
|
S { a: 1, ..base }; // no error
|
2017-02-08 14:58:07 +01:00
|
|
|
S { a: 1, b: 1, ..base };
|
2023-08-24 21:32:12 +02:00
|
|
|
//~^ ERROR: struct update has no effect, all the fields in the struct have already bee
|
|
|
|
//~| NOTE: `-D clippy::needless-update` implied by `-D warnings`
|
2020-12-20 17:19:49 +01:00
|
|
|
|
|
|
|
let base = T { x: 0, y: 0 };
|
|
|
|
T { ..base }; // no error
|
|
|
|
T { x: 1, ..base }; // no error
|
|
|
|
T { x: 1, y: 1, ..base }; // no error
|
2015-10-22 00:25:16 +09:00
|
|
|
}
|