error: this file contains an unclosed delimiter --> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:19: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) { | ^^^^^ 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[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 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 for more information = help: add `#![feature(return_position_impl_trait_in_trait)]` to the crate attributes to enable 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) { | _____________________----_____________________________-__^ | | | | | | | 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: requested on the command line with `-W rust-2021-incompatible-closure-captures` = note: for more information, see help: add a dummy let to cause `path` to be fully captured | LL | async fn create(path: impl AsRef) { let _ = &path; | ++++++++++++++ error[E0308]: mismatched types --> $DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:13:30 | LL | trait C{async fn new(val: T) {} | ^^ expected associated type, found opaque type | ::: $SRC_DIR/core/src/future/mod.rs:LL:COL | LL | pub const fn from_generator(gen: T) -> impl Future | ------------------------------- the found opaque type | = note: expected associated type `impl Future` (trait associated opaque type at <$DIR/drop-location-span-error-rust-2021-incompatible-closure-captures-93117.rs:13:30>) found opaque type `impl Future` (opaque type at <$SRC_DIR/core/src/future/mod.rs:LL:COL>) 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 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 7 previous errors; 2 warnings emitted Some errors have detailed explanations: E0308, E0412, E0423, E0670, E0706. For more information about an error, try `rustc --explain E0308`.