]> git.lizzy.rs Git - rust.git/blob - src/test/ui/hygiene/rustc-macro-transparency.rs
Rollup merge of #90202 - matthewjasper:xcrate-hygiene, r=petrochenkov
[rust.git] / src / test / ui / hygiene / rustc-macro-transparency.rs
1 #![feature(decl_macro, rustc_attrs)]
2
3 #[rustc_macro_transparency = "transparent"]
4 macro transparent() {
5     struct Transparent;
6     let transparent = 0;
7 }
8 #[rustc_macro_transparency = "semitransparent"]
9 macro semitransparent() {
10     struct SemiTransparent;
11     let semitransparent = 0;
12 }
13 #[rustc_macro_transparency = "opaque"]
14 macro opaque() {
15     struct Opaque;
16     let opaque = 0;
17 }
18
19 fn main() {
20     transparent!();
21     semitransparent!();
22     opaque!();
23
24     Transparent; // OK
25     SemiTransparent; // OK
26     Opaque; //~ ERROR cannot find value `Opaque` in this scope
27
28     transparent; // OK
29     semitransparent; //~ ERROR expected value, found macro `semitransparent`
30     opaque; //~ ERROR expected value, found macro `opaque`
31 }