]>
Commit | Line | Data |
---|---|---|
416331ca | 1 | // check-pass |
7cac9316 XL |
2 | // ignore-pretty pretty-printing is unhygienic |
3 | ||
4 | #![feature(decl_macro)] | |
5 | ||
6 | pub macro m($foo:ident, $f:ident, $e:expr) { | |
7 | mod foo { | |
8 | pub fn f() -> u32 { 0 } | |
9 | pub fn $f() -> u64 { 0 } | |
10 | } | |
11 | ||
12 | mod $foo { | |
13 | pub fn f() -> i32 { 0 } | |
14 | pub fn $f() -> i64 { 0 } | |
15 | } | |
16 | ||
17 | let _: u32 = foo::f(); | |
18 | let _: u64 = foo::$f(); | |
19 | let _: i32 = $foo::f(); | |
20 | let _: i64 = $foo::$f(); | |
21 | let _: i64 = $e; | |
22 | } | |
8bb4bdeb XL |
23 | |
24 | fn main() { | |
7cac9316 XL |
25 | m!(foo, f, foo::f()); |
26 | let _: i64 = foo::f(); | |
8bb4bdeb | 27 | } |