2 #![deny(meta_variable_misuse)]
5 ($
($m
:ident $
($f
:ident $v
:tt
)+),*) => {
6 $
($
(macro_rules
! $f { () => { $v }
})+)*
7 $
(macro_rules
! $m { () => { $(fn $f() -> i32 { $v }
)+ } })*
11 foo
!(m a
1 b
2, n c
3);
15 macro_rules
! no_shadow
{
16 ($x
:tt
) => { macro_rules! bar { ($x:tt) => { 42 }
; } };
20 macro_rules
! make_plus
{
21 ($n
: ident $x
:expr
) => { macro_rules! $n { ($y:expr) => { $x + $y }
; } };
32 assert_eq
!(bar
!(z
:tt
), 42);
33 assert_eq
!(add3
!(9), 12);