| // issue-103476 | |
| //@ revisions: edition2021 edition2024 | |
| //@ [edition2021] edition: 2021 | |
| //@ [edition2024] edition: 2024 | |
| //@ check-pass | |
| #![feature(if_let_guard)] | |
| #![allow(irrefutable_let_patterns)] | |
| struct Pd; | |
| impl Pd { | |
| fn it(&self) -> It<'_> { | |
| todo!() | |
| } | |
| } | |
| pub struct It<'a>(Box<dyn Tr<'a>>); | |
| trait Tr<'a> {} | |
| fn f(m: Option<Pd>) { | |
| match () { | |
| () if let Some(n) = m && let it = n.it() => {} | |
| _ => {} | |
| } | |
| } | |
| fn main() {} |