// edition:2018
// aux-build:test-macros.rs
+// aux-build:derive-helper-shadowing.rs
#[macro_use]
extern crate test_macros;
+#[macro_use]
+extern crate derive_helper_shadowing;
use test_macros::empty_attr as empty_helper;
+macro_rules! gen_helper_use {
+ () => {
+ #[empty_helper] //~ ERROR cannot find attribute `empty_helper` in this scope
+ struct W;
+ }
+}
+
#[empty_helper] //~ ERROR `empty_helper` is ambiguous
#[derive(Empty)]
struct S {
// OK, no ambiguity, the non-helper attribute is not in scope here, only the helper.
#[empty_helper]
struct V;
+
+ gen_helper_use!();
+
+ #[derive(GenHelperUse)] //~ ERROR cannot find attribute `empty_helper` in this scope
+ struct Owo;
+
+ use empty_helper as renamed;
+ #[renamed] //~ ERROR cannot use a derive helper attribute through an import
+ struct Wow;
}
0
}]
}
+// OK, no ambiguity, only the non-helper attribute is in scope.
+#[empty_helper]
+struct Z;
+
fn main() {
let s = S { field: [] };
}