diff options
Diffstat (limited to 'src/test/ui/hygiene/nested_macro_privacy.rs')
-rw-r--r-- | src/test/ui/hygiene/nested_macro_privacy.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/ui/hygiene/nested_macro_privacy.rs b/src/test/ui/hygiene/nested_macro_privacy.rs new file mode 100644 index 000000000..dea9101ee --- /dev/null +++ b/src/test/ui/hygiene/nested_macro_privacy.rs @@ -0,0 +1,17 @@ +#![feature(decl_macro)] + +macro n($foo:ident, $S:ident, $i:ident, $m:ident) { + mod $foo { + #[derive(Default)] + pub struct $S { $i: u32 } + pub macro $m($e:expr) { $e.$i } + } +} + +n!(foo, S, i, m); + +fn main() { + use foo::{S, m}; + S::default().i; //~ ERROR field `i` of struct `S` is private + m!(S::default()); // ok +} |