67cc89f38d
Issue #352 Closes #1720 The old checker would happily accept things like 'alt x { @some(a) { a } }'. It now properly descends into patterns, checks exhaustiveness of booleans, and complains when number/string patterns aren't exhaustive.
31 lines
613 B
Rust
31 lines
613 B
Rust
fn main() {
|
|
alt 5u {
|
|
1u to 5u {}
|
|
_ { fail "should match range"; }
|
|
}
|
|
alt 5u {
|
|
6u to 7u { fail "shouldn't match range"; }
|
|
_ {}
|
|
}
|
|
alt check 5u {
|
|
1u { fail "should match non-first range"; }
|
|
2u to 6u {}
|
|
}
|
|
alt 'c' {
|
|
'a' to 'z' {}
|
|
_ { fail "should suppport char ranges"; }
|
|
}
|
|
alt -3 {
|
|
-7 to 5 {}
|
|
_ { fail "should match signed range"; }
|
|
}
|
|
alt 3.0 {
|
|
1.0 to 5.0 {}
|
|
_ { fail "should match float range"; }
|
|
}
|
|
alt -1.5 {
|
|
-3.6 to 3.6 {}
|
|
_ { fail "should match negative float range"; }
|
|
}
|
|
}
|