52 lines
1.2 KiB
Rust
52 lines
1.2 KiB
Rust
// run-pass
|
|
#![allow(illegal_floating_point_literal_pattern)] // FIXME #41620
|
|
#![feature(exclusive_range_pattern)]
|
|
|
|
pub fn main() {
|
|
match 5_usize {
|
|
1_usize..=5_usize => {}
|
|
_ => panic!("should match range"),
|
|
}
|
|
match 1_usize {
|
|
1_usize..5_usize => {}
|
|
_ => panic!("should match range start"),
|
|
}
|
|
match 5_usize {
|
|
6_usize..=7_usize => panic!("shouldn't match range"),
|
|
_ => {}
|
|
}
|
|
match 7_usize {
|
|
6_usize..7_usize => panic!("shouldn't match range end"),
|
|
_ => {},
|
|
}
|
|
match 5_usize {
|
|
1_usize => panic!("should match non-first range"),
|
|
2_usize..=6_usize => {}
|
|
_ => panic!("math is broken")
|
|
}
|
|
match 'c' {
|
|
'a'..='z' => {}
|
|
_ => panic!("should support char ranges")
|
|
}
|
|
match -3 {
|
|
-7..=5 => {}
|
|
_ => panic!("should match signed range")
|
|
}
|
|
match 3.0f64 {
|
|
1.0..=5.0 => {}
|
|
_ => panic!("should match float range")
|
|
}
|
|
match -1.5f64 {
|
|
-3.6..=3.6 => {}
|
|
_ => panic!("should match negative float range")
|
|
}
|
|
match 3.5 {
|
|
0.0..3.5 => panic!("should not match the range end"),
|
|
_ => {},
|
|
}
|
|
match 0.0 {
|
|
0.0..3.5 => {},
|
|
_ => panic!("should match the range start"),
|
|
}
|
|
}
|