Why is self.parse_path(NoTypesAllowed) used to parse macro invocations? Each it is preceded by self.look_ahead(1, |t| *t == token::Not), effectivelly enforcing than it is a plain ident.
I’m trying to understand what different kinds of paths are used for, and it is a bit confusing 
One more thing adds to confusion: only two variants of PathParsingMode are actually used for parse_qualified_path, and (modulo parsing idents as macros) only two other variants are used for parse_path.