//@ known-bug: rust-lang/rust#126680 //@ compile-flags: -Zvalidate-mir #![feature(type_alias_impl_trait)] type Bar = impl std::fmt::Display; use std::path::Path; struct A { pub func: fn(check: Bar, b: Option<&Path>), } #[define_opaque(Bar)] fn foo() -> A { A { func: |check, b| { if check { () } else if let Some(_) = b.and_then(|p| p.parent()) { () } }, } } fn main() {}