mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 09:14:20 +00:00
31 lines
816 B
Rust
31 lines
816 B
Rust
#![deny(meta_variable_misuse)]
|
|
|
|
macro_rules! foo {
|
|
() => {};
|
|
( $( $i:ident = $($j:ident),+ );* ) => { $( $( $i = $j; )* )* };
|
|
//~^ ERROR meta-variable repeats with
|
|
( $( $($j:ident),+ );* ) => { $( $( $j; )+ )+ }; //~ERROR meta-variable repeats with
|
|
}
|
|
|
|
macro_rules! bar {
|
|
() => {};
|
|
(test) => {
|
|
macro_rules! nested {
|
|
() => {};
|
|
( $( $i:ident = $($j:ident),+ );* ) => { $( $( $i = $j; )* )* };
|
|
//~^ ERROR meta-variable repeats with
|
|
( $( $($j:ident),+ );* ) => { $( $( $j; )+ )+ }; //~ERROR meta-variable repeats with
|
|
}
|
|
};
|
|
( $( $i:ident = $($j:ident),+ );* ) => {
|
|
$(macro_rules! $i {
|
|
() => { 0 $( + $j )* }; //~ ERROR meta-variable repeats with
|
|
})*
|
|
};
|
|
}
|
|
|
|
fn main() {
|
|
foo!();
|
|
bar!();
|
|
}
|