enum Either { One(X), Two(X), } struct X(Y); struct Y; fn consume_fnmut(f: &dyn FnMut()) { f(); } fn move_into_fnmut() { let x = move_into_fnmut(); consume_fnmut(&|| { let Either::One(_t) = x; //~ ERROR mismatched types let Either::Two(_t) = x; //~ ERROR mismatched types }); } fn main() { }