blob: 2bfbf9dcccaafed0bc5fd4f69d1c3f3a0c1d22e8 [file] [log] [blame]
// `macro_rules` items produced by transparent macros have correct hygiene in basic cases.
// Local variables and labels are hygienic, items are not hygienic.
// `$crate` refers to the crate that defines `macro_rules` and not the outer transparent macro.
//@ aux-build:gen-macro-rules-hygiene.rs
#[macro_use]
extern crate gen_macro_rules_hygiene;
struct ItemUse;
gen_macro_rules!();
//~^ ERROR use of undeclared label `'label_use`
//~| ERROR cannot find value `local_use` in this scope
fn main() {
'label_use: loop {
let local_use = 1;
generated!();
ItemDef; // OK
local_def; //~ ERROR cannot find value `local_def` in this scope
}
}