32 lines
604 B
Rust
32 lines
604 B
Rust
|
// 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 associated function
|
||
|
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() {}
|