29 lines
831 B
Rust
29 lines
831 B
Rust
![]() |
// Tests how edition hygiene works for macro_rules macros generated from a
|
||
|
// proc-macro.
|
||
|
// See https://github.com/rust-lang/rust/issues/132906
|
||
|
|
||
|
//@ aux-crate: macro_rules_edition_pm=macro_rules_edition_pm.rs
|
||
|
//@ revisions: edition2021 edition2024
|
||
|
//@[edition2021] edition:2021
|
||
|
//@[edition2024] edition:2024
|
||
|
//@[edition2024] compile-flags: -Zunstable-options
|
||
|
//@[edition2024] check-pass
|
||
|
|
||
|
// This checks how the expr fragment specifier works.
|
||
|
macro_rules_edition_pm::make_edition_macro!{}
|
||
|
|
||
|
const _: () = {
|
||
|
assert!(edition!(const {}) == 2021);
|
||
|
};
|
||
|
|
||
|
// This checks how the expr fragment specifier from a nested macro.
|
||
|
macro_rules_edition_pm::make_nested_edition_macro!{}
|
||
|
make_inner!{}
|
||
|
|
||
|
const _: () = {
|
||
|
assert!(edition_inner!(const {}) == 2024);
|
||
|
//[edition2021]~^ ERROR evaluation of constant value failed
|
||
|
};
|
||
|
|
||
|
fn main() {}
|