
by using an opaque type obligation to bubble up comparisons between opaque types and other types Also uses proper obligation causes so that the body id works, because out of some reason nll uses body ids for logic instead of just diagnostics.
41 lines
1.4 KiB
Text
41 lines
1.4 KiB
Text
error[E0373]: async block may outlive the current function, but it borrows `x`, which is owned by the current function
|
|
--> $DIR/async-borrowck-escaping-block-error.rs:6:20
|
|
|
|
|
LL | Box::new(async { x } )
|
|
| ^^-^^
|
|
| | |
|
|
| | `x` is borrowed here
|
|
| may outlive borrowed value `x`
|
|
|
|
|
note: async block is returned here
|
|
--> $DIR/async-borrowck-escaping-block-error.rs:6:5
|
|
|
|
|
LL | Box::new(async { x } )
|
|
| ^^^^^^^^^^^^^^^^^^^^^^
|
|
help: to force the async block to take ownership of `x` (and any other referenced variables), use the `move` keyword
|
|
|
|
|
LL | Box::new(async move { x } )
|
|
| ++++
|
|
|
|
error[E0373]: async block may outlive the current function, but it borrows `x`, which is owned by the current function
|
|
--> $DIR/async-borrowck-escaping-block-error.rs:11:11
|
|
|
|
|
LL | async { *x }
|
|
| ^^--^^
|
|
| | |
|
|
| | `x` is borrowed here
|
|
| may outlive borrowed value `x`
|
|
|
|
|
note: async block is returned here
|
|
--> $DIR/async-borrowck-escaping-block-error.rs:11:5
|
|
|
|
|
LL | async { *x }
|
|
| ^^^^^^^^^^^^
|
|
help: to force the async block to take ownership of `x` (and any other referenced variables), use the `move` keyword
|
|
|
|
|
LL | async move { *x }
|
|
| ++++
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0373`.
|