diff options
Diffstat (limited to 'tests/ui/proc-macro/mixed-site-span.rs')
-rw-r--r-- | tests/ui/proc-macro/mixed-site-span.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/ui/proc-macro/mixed-site-span.rs b/tests/ui/proc-macro/mixed-site-span.rs new file mode 100644 index 000000000..008384656 --- /dev/null +++ b/tests/ui/proc-macro/mixed-site-span.rs @@ -0,0 +1,24 @@ +// Proc macros using `mixed_site` spans exhibit usual properties of `macro_rules` hygiene. + +// aux-build:mixed-site-span.rs + +#[macro_use] +extern crate mixed_site_span; + +struct ItemUse; + +fn main() { + 'label_use: loop { + let local_use = 1; + proc_macro_rules!(); + //~^ ERROR use of undeclared label `'label_use` + //~| ERROR cannot find value `local_use` in this scope + ItemDef; // OK + local_def; //~ ERROR cannot find value `local_def` in this scope + } +} + +macro_rules! pass_dollar_crate { + () => (proc_macro_rules!($crate);) //~ ERROR cannot find type `ItemUse` in crate `$crate` +} +pass_dollar_crate!(); |