summary refs log tree commit diff
path: root/src/test/ui/pattern/usefulness/issue-43253.rs
blob: 349ba11a7cdffd096166f47a9f1be5080c2b8fbb (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
// check-pass
#![feature(exclusive_range_pattern)]
#![warn(unreachable_patterns)]
#![warn(overlapping_patterns)]

fn main() {
    // These cases should generate no warning.
    match 10 {
        1..10 => {},
        10 => {},
        _ => {},
    }

    match 10 {
        1..10 => {},
        9..=10 => {}, //~ WARNING multiple patterns covering the same range
        _ => {},
    }

    match 10 {
        1..10 => {},
        10..=10 => {},
        _ => {},
    }

    // These cases should generate "unreachable pattern" warnings.
    match 10 {
        1..10 => {},
        9 => {}, //~ WARNING unreachable pattern
        _ => {},
    }

    match 10 {
        1..10 => {},
        8..=9 => {}, //~ WARNING unreachable pattern
        _ => {},
    }

    match 10 {
        5..7 => {},
        6 => {}, //~ WARNING unreachable pattern
        1..10 => {},
        9..=9 => {}, //~ WARNING unreachable pattern
        6 => {}, //~ WARNING unreachable pattern
        _ => {},
    }
}