summaryrefslogtreecommitdiffstats
path: root/src/test/ui/macros/rfc-3086-metavar-expr/dollar-dollar-has-correct-behavior.rs
blob: ed94c27cf05ca432a1b73a564435ac1e66dcbeb5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// run-pass

#![feature(macro_metavar_expr)]

macro_rules! nested {
    ( $a:ident ) => {
        macro_rules! $a {
            ( $$( $b:ident ),* ) => {
                $$(
                    macro_rules! $b {
                        ( $$$$( $c:ident ),* ) => {
                            $$$$(
                                fn $c() -> &'static str { stringify!($c) }
                            ),*
                        };
                    }
                )*
            };
        }
    };
}

fn main() {
    nested!(a);
    a!(b);
    b!(c);
    assert_eq!(c(), "c");
}