]>
Commit | Line | Data |
---|---|---|
7cac9316 XL |
1 | #![feature(decl_macro)] |
2 | ||
3 | pub mod foo { | |
4 | pub use self::bar::m; | |
5 | mod bar { | |
6 | fn f() -> u32 { 1 } | |
7 | pub macro m() { | |
94222f64 | 8 | f() |
7cac9316 | 9 | } |
476ff2be SL |
10 | } |
11 | } | |
8faf50e0 XL |
12 | |
13 | pub struct SomeType; | |
14 | ||
15 | // `$crate` | |
16 | pub macro uses_dollar_crate_modern() { | |
17 | type Alias = $crate::SomeType; | |
18 | } | |
19 | ||
20 | pub macro define_uses_dollar_crate_modern_nested($uses_dollar_crate_modern_nested: ident) { | |
21 | macro $uses_dollar_crate_modern_nested() { | |
22 | type AliasCrateModernNested = $crate::SomeType; | |
23 | } | |
24 | } | |
25 | ||
26 | #[macro_export] | |
27 | macro_rules! define_uses_dollar_crate_legacy_nested { | |
28 | () => { | |
29 | macro_rules! uses_dollar_crate_legacy_nested { | |
30 | () => { | |
31 | type AliasLegacyNested = $crate::SomeType; | |
32 | } | |
33 | } | |
34 | } | |
35 | } | |
36 | ||
37 | // `crate` | |
38 | pub macro uses_crate_modern() { | |
39 | type AliasCrate = crate::SomeType; | |
40 | } | |
41 | ||
42 | pub macro define_uses_crate_modern_nested($uses_crate_modern_nested: ident) { | |
43 | macro $uses_crate_modern_nested() { | |
44 | type AliasCrateModernNested = crate::SomeType; | |
45 | } | |
46 | } |