| //@ run-pass |
| #![allow(non_contiguous_range_endpoints)] |
| #![feature(inline_const_pat)] |
| |
| 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 @ 0..const { 5 + 1 } => assert_eq!(y, 5), |
| 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, 7]); |
| assert_eq!(bottom, [-7, -6]); |
| } |