| //@ edition:2021 | |
| struct StructA { | |
| b: StructB, | |
| } | |
| async fn spawn_blocking<T>(f: impl (Fn() -> T) + Send + Sync + 'static) -> T { | |
| todo!() | |
| } | |
| impl StructA { | |
| async fn foo(&self) { | |
| let bar = self.b.bar().await; | |
| spawn_blocking(move || { | |
| //~^ ERROR borrowed data escapes outside of method | |
| self.b; | |
| //~^ ERROR cannot move out of `self.b`, as `self` is a captured variable in an `Fn` closure | |
| }) | |
| .await; | |
| } | |
| } | |
| struct StructB {} | |
| impl StructB { | |
| async fn bar(&self) -> Option<u8> { | |
| None | |
| } | |
| } | |
| fn main() {} |