struct NotCopyable; #[derive(Clone)] struct NotCopyableButCloneable; fn func H, H: FnMut()>(_: F) {} fn foo() { let mut var = None; func(|| { // Shouldn't suggest `move ||.as_ref()` here move || { //~^ ERROR: cannot move out of `var` var = Some(NotCopyable); } }); } fn bar() { let mut var = None; func(|| { // Shouldn't suggest `move ||.as_ref()` nor to `clone()` here move || { //~^ ERROR: cannot move out of `var` var = Some(NotCopyableButCloneable); } }); } fn main() {}