rust/tests/ui/macros/missing-comma.rs
2023-01-11 09:32:08 +00:00

34 lines
943 B
Rust

macro_rules! foo {
($a:ident) => ();
($a:ident, $b:ident) => ();
($a:ident, $b:ident, $c:ident) => ();
($a:ident, $b:ident, $c:ident, $d:ident) => ();
($a:ident, $b:ident, $c:ident, $d:ident, $e:ident) => ();
}
macro_rules! bar {
($lvl:expr, $($arg:tt)+) => {}
}
macro_rules! check {
($ty:ty, $expected:expr) => {};
($ty_of:expr, $expected:expr) => {};
}
fn main() {
println!("{}" a);
//~^ ERROR expected `,`, found `a`
foo!(a b);
//~^ ERROR no rules expected the token `b`
foo!(a, b, c, d e);
//~^ ERROR no rules expected the token `e`
foo!(a, b, c d, e);
//~^ ERROR no rules expected the token `d`
foo!(a, b, c d e);
//~^ ERROR no rules expected the token `d`
bar!(Level::Error, );
//~^ ERROR unexpected end of macro invocation
check!(<str as Debug>::fmt, "fmt");
check!(<str as Debug>::fmt, "fmt",);
//~^ ERROR no rules expected the token `,`
}