| // Tests for #88015 when using if let chains in match guards |
| |
| //@run-pass |
| |
| #![feature(if_let_guard)] |
| #![feature(let_chains)] |
| #![allow(irrefutable_let_patterns)] |
| |
| fn lhs_let(opt: Option<bool>) { |
| match opt { |
| None | Some(false) | Some(true) if let x = 42 && true => assert_eq!(x, 42), |
| _ => panic!() |
| } |
| } |
| |
| fn rhs_let(opt: Option<bool>) { |
| match opt { |
| None | Some(false) | Some(true) if true && let x = 41 => assert_eq!(x, 41), |
| _ => panic!() |
| } |
| } |
| |
| fn main() { |
| lhs_let(None); |
| lhs_let(Some(false)); |
| lhs_let(Some(true)); |
| rhs_let(None); |
| rhs_let(Some(false)); |
| rhs_let(Some(true)); |
| } |