| #![feature(macro_metavar_expr)] |
| |
| macro_rules! a { |
| ( $( { $( [ $( ( $( $foo:ident )* ) )* ] )* } )* ) => { |
| ( |
| ${count($foo, 0)}, |
| ${count($foo, 10)}, |
| //~^ ERROR depth parameter of meta-variable expression `count` must be less than 4 |
| ) |
| }; |
| } |
| |
| macro_rules! b { |
| ( $( { $( [ $( $foo:ident )* ] )* } )* ) => { |
| ( |
| $( $( $( |
| ${ignore($foo)} |
| ${index(0)}, |
| ${index(10)}, |
| //~^ ERROR depth parameter of meta-variable expression `index` must be less than 3 |
| )* )* )* |
| ) |
| }; |
| } |
| |
| macro_rules! c { |
| ( $( { $( $foo:ident )* } )* ) => { |
| ( |
| $( $( |
| ${ignore($foo)} |
| ${len(0)} |
| ${len(10)} |
| //~^ ERROR depth parameter of meta-variable expression `len` must be less than 2 |
| )* )* |
| ) |
| }; |
| } |
| |
| fn main() { |
| a!( { [ (a) ] [ (b c) ] } ); |
| b!( { [ a b ] } ); |
| c!({ a }); |
| } |