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

error: no rules expected `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 `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 `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 `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 `,`
  --> $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

