mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 06:51:58 +00:00
96 lines
4.4 KiB
Plaintext
96 lines
4.4 KiB
Plaintext
error: this file contains an unclosed delimiter
|
|
--> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:18:53
|
|
|
|
|
LL | trait C{async fn new(val: T) {}
|
|
| - unclosed delimiter
|
|
...
|
|
LL |
|
|
| ^
|
|
|
|
error[E0670]: `async fn` is not permitted in Rust 2015
|
|
--> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:6:5
|
|
|
|
|
LL | async fn create(path: impl AsRef<std::path::Path>) {
|
|
| ^^^^^ to use `async fn`, switch to Rust 2018 or later
|
|
|
|
|
= help: pass `--edition 2021` to `rustc`
|
|
= note: for more on editions, read https://doc.rust-lang.org/edition-guide
|
|
|
|
error[E0670]: `async fn` is not permitted in Rust 2015
|
|
--> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:13:9
|
|
|
|
|
LL | trait C{async fn new(val: T) {}
|
|
| ^^^^^ to use `async fn`, switch to Rust 2018 or later
|
|
|
|
|
= help: pass `--edition 2021` to `rustc`
|
|
= note: for more on editions, read https://doc.rust-lang.org/edition-guide
|
|
|
|
error[E0412]: cannot find type `T` in this scope
|
|
--> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:13:27
|
|
|
|
|
LL | pub struct A {}
|
|
| ------------ similarly named struct `A` defined here
|
|
...
|
|
LL | trait C{async fn new(val: T) {}
|
|
| ^ help: a struct with a similar name exists: `A`
|
|
|
|
error[E0706]: functions in traits cannot be declared `async`
|
|
--> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:13:9
|
|
|
|
|
LL | trait C{async fn new(val: T) {}
|
|
| -----^^^^^^^^^^^^^^^
|
|
| |
|
|
| `async` because of this
|
|
|
|
|
= note: `async` trait functions are not currently supported
|
|
= note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
|
|
= note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
|
|
= help: add `#![feature(async_fn_in_trait)]` to the crate attributes to enable
|
|
|
|
error[E0423]: expected function, found module `crate`
|
|
--> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:9:5
|
|
|
|
|
LL | crate(move || {} ).await
|
|
| ^^^^^ not a function
|
|
|
|
warning: changes to closure capture in Rust 2021 will affect drop order
|
|
--> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:6:57
|
|
|
|
|
LL | async fn create(path: impl AsRef<std::path::Path>) {
|
|
| _____________________----_____________________________-__^
|
|
| | | |
|
|
| | | in Rust 2018, `path` is dropped here along with the closure, but in Rust 2021 `path` is not part of the closure
|
|
| | in Rust 2018, this causes the closure to capture `path`, but in Rust 2021, it has no effect
|
|
LL | |
|
|
LL | | ;
|
|
LL | | crate(move || {} ).await
|
|
LL | | }
|
|
| |_____^
|
|
|
|
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/disjoint-capture-in-closures.html>
|
|
= note: requested on the command line with `-W rust-2021-incompatible-closure-captures`
|
|
help: add a dummy let to cause `path` to be fully captured
|
|
|
|
|
LL | async fn create(path: impl AsRef<std::path::Path>) { let _ = &path;
|
|
| ++++++++++++++
|
|
|
|
warning: changes to closure capture in Rust 2021 will affect drop order
|
|
--> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:13:30
|
|
|
|
|
LL | trait C{async fn new(val: T) {}
|
|
| --- - ^^
|
|
| | |
|
|
| | in Rust 2018, `val` is dropped here along with the closure, but in Rust 2021 `val` is not part of the closure
|
|
| in Rust 2018, this causes the closure to capture `val`, but in Rust 2021, it has no effect
|
|
|
|
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/disjoint-capture-in-closures.html>
|
|
help: add a dummy let to cause `val` to be fully captured
|
|
|
|
|
LL | trait C{async fn new(val: T) { let _ = &val;}
|
|
| +++++++++++++
|
|
|
|
error: aborting due to 6 previous errors; 2 warnings emitted
|
|
|
|
Some errors have detailed explanations: E0412, E0423, E0670, E0706.
|
|
For more information about an error, try `rustc --explain E0412`.
|