summaryrefslogtreecommitdiffstats
path: root/tests/ui/nll/issue-57960.rs
blob: 32e45184a91952294baf158ed83ac9ab1530a282 (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
// run-pass

#![allow(dead_code)]

trait Range {
    const FIRST: u8;
    const LAST: u8;
}

struct OneDigit;
impl Range for OneDigit {
    const FIRST: u8 = 0;
    const LAST: u8 = 9;
}

struct TwoDigits;
impl Range for TwoDigits {
    const FIRST: u8 = 10;
    const LAST: u8 = 99;
}

struct ThreeDigits;
impl Range for ThreeDigits {
    const FIRST: u8 = 100;
    const LAST: u8 = 255;
}

fn digits(x: u8) -> u32 {
    match x {
        OneDigit::FIRST..=OneDigit::LAST => 1,
        TwoDigits::FIRST..=TwoDigits::LAST => 2,
        ThreeDigits::FIRST..=ThreeDigits::LAST => 3,
    }
}

fn main() {
    assert_eq!(digits(100), 3);
}