-
Notifications
You must be signed in to change notification settings - Fork 12.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of #71783 - estebank:async-block-2015, r=tmandry
Detect errors caused by `async` block in 2015 edition Fix #67204.
- Loading branch information
Showing
7 changed files
with
121 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
async fn foo() { | ||
//~^ ERROR `async fn` is not permitted in the 2015 edition | ||
//~| NOTE to use `async fn`, switch to Rust 2018 | ||
//~| HELP set `edition = "2018"` in `Cargo.toml` | ||
//~| NOTE for more on editions, read https://doc.rust-lang.org/edition-guide | ||
|
||
let x = async {}; | ||
//~^ ERROR cannot find struct, variant or union type `async` in this scope | ||
//~| NOTE `async` blocks are only allowed in the 2018 edition | ||
let y = async { //~ NOTE `async` blocks are only allowed in the 2018 edition | ||
let x = 42; | ||
//~^ ERROR expected identifier, found keyword `let` | ||
//~| NOTE expected identifier, found keyword | ||
//~| HELP set `edition = "2018"` in `Cargo.toml` | ||
//~| NOTE for more on editions, read https://doc.rust-lang.org/edition-guide | ||
42 | ||
}; | ||
let z = async { //~ NOTE `async` blocks are only allowed in the 2018 edition | ||
42 | ||
//~^ ERROR expected identifier, found `42` | ||
//~| NOTE expected identifier | ||
//~| HELP set `edition = "2018"` in `Cargo.toml` | ||
//~| NOTE for more on editions, read https://doc.rust-lang.org/edition-guide | ||
}; | ||
y.await; | ||
z.await; | ||
x | ||
} | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
error[E0670]: `async fn` is not permitted in the 2015 edition | ||
--> $DIR/async-block-2015.rs:1:1 | ||
| | ||
LL | async fn foo() { | ||
| ^^^^^ to use `async fn`, switch to Rust 2018 | ||
| | ||
= help: set `edition = "2018"` in `Cargo.toml` | ||
= note: for more on editions, read https://doc.rust-lang.org/edition-guide | ||
|
||
error: expected identifier, found keyword `let` | ||
--> $DIR/async-block-2015.rs:11:9 | ||
| | ||
LL | let y = async { | ||
| ----- `async` blocks are only allowed in the 2018 edition | ||
LL | let x = 42; | ||
| ^^^ expected identifier, found keyword | ||
| | ||
= help: set `edition = "2018"` in `Cargo.toml` | ||
= note: for more on editions, read https://doc.rust-lang.org/edition-guide | ||
|
||
error: expected identifier, found `42` | ||
--> $DIR/async-block-2015.rs:19:9 | ||
| | ||
LL | let z = async { | ||
| ----- `async` blocks are only allowed in the 2018 edition | ||
LL | 42 | ||
| ^^ expected identifier | ||
| | ||
= help: set `edition = "2018"` in `Cargo.toml` | ||
= note: for more on editions, read https://doc.rust-lang.org/edition-guide | ||
|
||
error[E0422]: cannot find struct, variant or union type `async` in this scope | ||
--> $DIR/async-block-2015.rs:7:13 | ||
| | ||
LL | let x = async {}; | ||
| ^^^^^ `async` blocks are only allowed in the 2018 edition | ||
|
||
error: aborting due to 4 previous errors | ||
|
||
Some errors have detailed explanations: E0422, E0670. | ||
For more information about an error, try `rustc --explain E0422`. |