error: expected `,`, found `a`
  --> $DIR/missing-comma.rs:19:19
   |
LL |     println!("{}" a);
   |                   ^ expected `,`

error: no rules expected the token `b`
  --> $DIR/missing-comma.rs:21:12
   |
LL | macro_rules! foo {
   | ---------------- when calling this macro
...
LL |     foo!(a b);
   |           -^ no rules expected this token in macro call
   |           |
   |           help: missing comma here
   |
note: while trying to match meta-variable `$a:ident`
  --> $DIR/missing-comma.rs:2:6
   |
LL |     ($a:ident) => ();
   |      ^^^^^^^^

error: no rules expected the token `e`
  --> $DIR/missing-comma.rs:23:21
   |
LL | macro_rules! foo {
   | ---------------- when calling this macro
...
LL |     foo!(a, b, c, d e);
   |                    -^ no rules expected this token in macro call
   |                    |
   |                    help: missing comma here
   |
note: while trying to match meta-variable `$d:ident`
  --> $DIR/missing-comma.rs:5:36
   |
LL |     ($a:ident, $b:ident, $c:ident, $d:ident) => ();
   |                                    ^^^^^^^^

error: no rules expected the token `d`
  --> $DIR/missing-comma.rs:25:18
   |
LL | macro_rules! foo {
   | ---------------- when calling this macro
...
LL |     foo!(a, b, c d, e);
   |                 -^ no rules expected this token in macro call
   |                 |
   |                 help: missing comma here
   |
note: while trying to match meta-variable `$c:ident`
  --> $DIR/missing-comma.rs:4:26
   |
LL |     ($a:ident, $b:ident, $c:ident) => ();
   |                          ^^^^^^^^

error: no rules expected the token `d`
  --> $DIR/missing-comma.rs:27:18
   |
LL | macro_rules! foo {
   | ---------------- when calling this macro
...
LL |     foo!(a, b, c d e);
   |                  ^ no rules expected this token in macro call
   |
note: while trying to match meta-variable `$c:ident`
  --> $DIR/missing-comma.rs:4:26
   |
LL |     ($a:ident, $b:ident, $c:ident) => ();
   |                          ^^^^^^^^

error: unexpected end of macro invocation
  --> $DIR/missing-comma.rs:29:23
   |
LL | macro_rules! bar {
   | ---------------- when calling this macro
...
LL |     bar!(Level::Error, );
   |                       ^ missing tokens in macro arguments
   |
note: while trying to match meta-variable `$arg:tt`
  --> $DIR/missing-comma.rs:10:19
   |
LL |     ($lvl:expr, $($arg:tt)+) => {}
   |                   ^^^^^^^

error: no rules expected the token `,`
  --> $DIR/missing-comma.rs:32:38
   |
LL | macro_rules! check {
   | ------------------ when calling this macro
...
LL |     check!(<str as Debug>::fmt, "fmt",);
   |                                      ^ no rules expected this token in macro call
   |
note: while trying to match meta-variable `$expected:expr`
  --> $DIR/missing-comma.rs:14:14
   |
LL |     ($ty:ty, $expected:expr) => {};
   |              ^^^^^^^^^^^^^^

error: aborting due to 7 previous errors

