Add test that expr_2021 only works on 2024 edition

Co-authored-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
This commit is contained in:
Eric Holk 2024-04-12 10:28:03 -07:00
parent ef6478ba5f
commit 65da4adfcd
No known key found for this signature in database
GPG Key ID: 8EA6B43ED4CE0911
2 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,13 @@
//@ compile-flags: --edition=2021
// This test ensures that expr_2021 is not allowed on pre-2024 editions
macro_rules! m {
($e:expr_2021) => { //~ ERROR: invalid fragment specifier `expr_2021`
$e
};
}
fn main() {
m!(()); //~ ERROR: no rules expected the token `(`
}

View File

@ -0,0 +1,25 @@
error: invalid fragment specifier `expr_2021`
--> $DIR/expr_2021_old_edition.rs:6:6
|
LL | ($e:expr_2021) => {
| ^^^^^^^^^^^^
|
= help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`
error: no rules expected the token `(`
--> $DIR/expr_2021_old_edition.rs:12:8
|
LL | macro_rules! m {
| -------------- when calling this macro
...
LL | m!(());
| ^ no rules expected this token in macro call
|
note: while trying to match meta-variable `$e:ident`
--> $DIR/expr_2021_old_edition.rs:6:6
|
LL | ($e:expr_2021) => {
| ^^^^^^^^^^^^
error: aborting due to 2 previous errors