#![allow(unused)]
#![warn(clippy::needless_bool_assign)]

fn random() -> bool {
    true
}

fn main() {
    struct Data {
        field: bool,
    };
    let mut a = Data { field: false };
    a.field = random() && random();
    //~^^^^^ needless_bool_assign
    a.field = !(random() && random());
    //~^^^^^ needless_bool_assign
    // Do not lint…
    if random() {
        a.field = false;
    } else {
        // …to avoid losing this comment
        a.field = true
    }
    // This one also triggers lint `clippy::if_same_then_else`
    // which does not suggest a rewrite.
    random(); a.field = true;
    //~^^^^^ if_same_then_else
    //~| needless_bool_assign
    let mut b = false;
    if random() {
        a.field = false;
    } else {
        b = true;
    }
}
