| struct NotCopyable; | |
| #[derive(Clone)] | |
| struct NotCopyableButCloneable; | |
| fn func<F: FnMut() -> 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() {} |