rust/tests/ui/proc-macro/nonterminal-token-hygiene.rs
Seth Pellegrino 26bd86d3d9 fix(test): improve sensitivity of hygene tests
The change in 07f855d781 introduced a
trailing numeral of some kind after the `extern crate
compiler_builtins`, which appears to have caused at least two false
negatives (654b924 and 657fd24). Instead, this change normalizes the
test output to ignore the number (of symbols rustc recognizes?) to avoid
needing to re-`--bless` these two tests for unrelated changes.
2023-08-08 18:09:56 -07:00

36 lines
869 B
Rust

// Make sure that marks from declarative macros are applied to tokens in nonterminal.
// check-pass
// compile-flags: -Z span-debug -Z macro-backtrace -Z unpretty=expanded,hygiene
// compile-flags: -Z trim-diagnostic-paths=no
// ignore-tidy-linelength
// normalize-stdout-test "\d+#" -> "0#"
// normalize-stdout-test "expn\d{3,}" -> "expnNNN"
// normalize-stdout-test "extern crate compiler_builtins /\* \d+ \*/" -> "extern crate compiler_builtins /* NNN */"
// aux-build:test-macros.rs
#![feature(decl_macro)]
#![no_std] // Don't load unnecessary hygiene information from std
extern crate std;
#[macro_use]
extern crate test_macros;
macro_rules! outer {
($item:item) => {
macro inner() {
print_bang! { $item }
}
inner!();
};
}
struct S;
outer! {
struct S; // OK, not a duplicate definition of `S`
}
fn main() {}