summaryrefslogtreecommitdiffstats
path: root/src/test/ui/proc-macro/mixed-site-span.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/proc-macro/mixed-site-span.rs')
-rw-r--r--src/test/ui/proc-macro/mixed-site-span.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/proc-macro/mixed-site-span.rs b/src/test/ui/proc-macro/mixed-site-span.rs
new file mode 100644
index 000000000..008384656
--- /dev/null
+++ b/src/test/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!();