| #[derive(Debug)] |
| struct NotCopyable; |
| #[derive(Debug, Clone)] |
| struct NotCopyableButCloneable; |
| |
| fn func<F: FnMut() -> H, H: FnMut()>(_: F) {} |
| |
| fn foo() { |
| let var = NotCopyable; |
| func(|| { |
| // Shouldn't suggest `move ||.as_ref()` here |
| move || { //~ ERROR cannot move out of `var` |
| let x = var; //~ ERROR cannot move out of `var` |
| println!("{x:?}"); |
| } |
| }); |
| } |
| |
| fn bar() { |
| let var = NotCopyableButCloneable; |
| func(|| { |
| // Shouldn't suggest `move ||.as_ref()` here |
| move || { //~ ERROR cannot move out of `var` |
| let x = var; //~ ERROR cannot move out of `var` |
| println!("{x:?}"); |
| } |
| }); |
| } |
| |
| fn main() {} |