Change:
I don't know what to make of this error. () Errors: On stable (1.34) the output is
I'm pretty sure this is fallout from the "missing comma here" suggestion for macros, that evaluates the macro again with the current arguments but adding a comma token in between the argument tokens in different combinations to see if it would be correct. My guess is that that is causing a parse error that doesn't happen for normal things than only have one token in them. We can disable the suggestion when fully qualified paths are involved.

Discussion:
(_, (TokenTree::Token(_, token::Token::Comma), _)) => continue, ((TokenTree::Token(sp, token_left), NonJoint), (TokenTree::Token(_, token_right), _)) <del> if (token_left.is_ident() || token_left.is_lit()) && (token_right.is_ident() || token_right.is_lit()) => *sp, </del> <ins> if ((token_left.is_ident() && !token_left.is_reserved_ident()) || token_left.is_lit()) && ((token_right.is_ident() && !token_right.is_reserved_ident()) || token_right.is_lit()) => *sp, </ins> ((TokenTree::Delimited(sp, ..), NonJoint), _) => sp.entire(), _ => continue, };

($lvl:expr, $($arg:tt)+) => {} } <ins> macro_rules! check { ($ty:ty, $expected:expr) => {}; ($ty_of:expr, $expected:expr) => {}; } </ins> fn main() { println!("{}" a);

//~^ ERROR no rules expected the token `d` bar!(Level::Error, ); //~^ ERROR unexpected end of macro invocation <ins> check!(<str as Debug>::fmt, "fmt"); check!(<str as Debug>::fmt, "fmt",); //~^ ERROR no rules expected the token `,` </ins> }

error: expected token: `,` <del> --> $DIR/missing-comma.rs:15:19 </del> <ins> --> $DIR/missing-comma.rs:19:19 </ins> | LL |     println!("{}" a); |                   ^ error: no rules expected the token `b` <del> --> $DIR/missing-comma.rs:17:12 </del> <ins> --> $DIR/missing-comma.rs:21:12 </ins> | LL | macro_rules! foo { | ---------------- when calling this macro

|           help: missing comma here error: no rules expected the token `e` <del> --> $DIR/missing-comma.rs:19:21 </del> <ins> --> $DIR/missing-comma.rs:23:21 </ins> | LL | macro_rules! foo { | ---------------- when calling this macro

|                    help: missing comma here error: no rules expected the token `d` <del> --> $DIR/missing-comma.rs:21:18 </del> <ins> --> $DIR/missing-comma.rs:25:18 </ins> | LL | macro_rules! foo { | ---------------- when calling this macro

|                 help: missing comma here error: no rules expected the token `d` <del> --> $DIR/missing-comma.rs:23:18 </del> <ins> --> $DIR/missing-comma.rs:27:18 </ins> | LL | macro_rules! foo { | ---------------- when calling this macro

|                  ^ no rules expected this token in macro call error: unexpected end of macro invocation <del> --> $DIR/missing-comma.rs:25:23 </del> <ins> --> $DIR/missing-comma.rs:29:23 </ins> | LL | macro_rules! bar { | ---------------- when calling this macro

LL |     bar!(Level::Error, ); |                       ^ missing tokens in macro arguments <del> error: aborting due to 6 previous errors </del> <ins> 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 error: aborting due to 7 previous errors </ins>