summaryrefslogtreecommitdiffstats
path: root/src/test/ui/proc-macro/ambiguous-builtin-attrs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/proc-macro/ambiguous-builtin-attrs.rs')
-rw-r--r--src/test/ui/proc-macro/ambiguous-builtin-attrs.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/test/ui/proc-macro/ambiguous-builtin-attrs.rs b/src/test/ui/proc-macro/ambiguous-builtin-attrs.rs
new file mode 100644
index 000000000..695ea69c8
--- /dev/null
+++ b/src/test/ui/proc-macro/ambiguous-builtin-attrs.rs
@@ -0,0 +1,39 @@
+// edition:2018
+// aux-build:builtin-attrs.rs
+#![feature(decl_macro)] //~ ERROR `feature` is ambiguous
+
+extern crate builtin_attrs;
+use builtin_attrs::*;
+use builtin_attrs::{bench, test};
+
+#[repr(C)] //~ ERROR `repr` is ambiguous
+struct S;
+#[cfg_attr(all(), repr(C))] //~ ERROR `repr` is ambiguous
+struct SCond;
+
+#[test] // OK, shadowed
+fn test() {}
+
+#[bench] // OK, shadowed
+fn bench() {}
+
+fn non_macro_expanded_location<#[repr(C)] T>() {
+ //~^ ERROR `repr` is ambiguous
+ //~| ERROR attribute should be applied to a struct, enum, or union
+ match 0u8 {
+ #[repr(C)]
+ //~^ ERROR `repr` is ambiguous
+ //~| ERROR attribute should be applied to a struct, enum, or union
+ _ => {}
+ }
+}
+
+fn main() {
+ Test;
+ Bench;
+ NonExistent; //~ ERROR cannot find value `NonExistent` in this scope
+}
+
+use deny as allow;
+#[allow(unused)] //~ ERROR `allow` is ambiguous
+fn builtin_renamed() {}