// 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) { match opt { None | Some(false) | Some(true) if let x = 42 && true => assert_eq!(x, 42), _ => panic!() } } fn rhs_let(opt: Option) { 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)); }