about summary refs log tree commit diff
path: root/src/tools/clippy/tests/ui/match_bool.fixed
blob: 876ae935afdedb5f379b54c81214d8459d7e7f22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#![deny(clippy::match_bool)]
#![allow(clippy::nonminimal_bool, clippy::eq_op)]

fn match_bool() {
    let test: bool = true;

    if test { 0 } else { 42 };

    let option = 1;
    if option == 1 { 1 } else { 0 };

    if !test {
        println!("Noooo!");
    };

    if !test {
        println!("Noooo!");
    };

    if !(test && test) {
        println!("Noooo!");
    };

    if !test {
        println!("Noooo!");
    } else {
        println!("Yes!");
    };

    // Not linted
    match option {
        1..=10 => 1,
        11..=20 => 2,
        _ => 3,
    };

    // Don't lint
    let _ = match test {
        #[cfg(feature = "foo")]
        true if option == 5 => 10,
        true => 0,
        false => 1,
    };

    let _ = if test && option == 5 { 10 } else { 1 };

    let _ = if !test && option == 5 { 10 } else { 1 };

    if test && option == 5 { println!("Hello") };

    if !(test && option == 5) { println!("Hello") };

    if !test && option == 5 { println!("Hello") };

    if !(!test && option == 5) { println!("Hello") };
}

fn issue14099() {
    if true { 'a: {
        break 'a;
    } }
}

fn issue15351() {
    let mut d = false;
    match d {
        false => println!("foo"),
        ref mut d => *d = false,
    }

    match d {
        false => println!("foo"),
        e => println!("{e}"),
    }
}

fn main() {}