| //@ run-pass | |
| #![allow(non_contiguous_range_endpoints)] | |
| fn main() { | |
| let mut if_lettable = vec![]; | |
| let mut first_or = vec![]; | |
| let mut or_two = vec![]; | |
| let mut range_from = vec![]; | |
| let mut bottom = vec![]; | |
| for x in -9 + 1..=(9 - 2) { | |
| if let -1..=0 | 2..3 | 4 = x { | |
| if_lettable.push(x) | |
| } | |
| match x { | |
| 1 | -3..0 => first_or.push(x), | |
| y @ (0..5 | 6) => or_two.push(y), | |
| y @ -5.. => range_from.push(y), | |
| y @ ..-7 => assert_eq!(y, -8), | |
| y => bottom.push(y), | |
| } | |
| } | |
| assert_eq!(if_lettable, [-1, 0, 2, 4]); | |
| assert_eq!(first_or, [-3, -2, -1, 1]); | |
| assert_eq!(or_two, [0, 2, 3, 4, 6]); | |
| assert_eq!(range_from, [-5, -4, 5, 7]); | |
| assert_eq!(bottom, [-7, -6]); | |
| } |