]> git.lizzy.rs Git - rust.git/blobdiff - crates/parser/src/grammar/generic_args.rs
parser: fix parsing of macro call inside generic args
[rust.git] / crates / parser / src / grammar / generic_args.rs
index b47912d07d493da2bdf3dc177af3bde583260ceb..1148c6c35c59211c1e92bd52c5d0bdb4e7f56ece 100644 (file)
@@ -32,7 +32,10 @@ fn generic_arg(p: &mut Parser) {
         k if k.is_literal() => const_arg(p),
         // test associated_type_bounds
         // fn print_all<T: Iterator<Item, Item::Item, Item::<true>, Item: Display, Item<'a> = Item>>(printables: T) {}
-        IDENT if [T![<], T![=], T![:]].contains(&p.nth(1)) => {
+
+        // test macro_inside_generic_arg
+        // type A = Foo<syn::Token![_]>;
+        IDENT if [T![<], T![=], T![:]].contains(&p.nth(1)) && !p.nth_at(1, T![::]) => {
             let m = p.start();
             name_ref(p);
             opt_generic_arg_list(p, false);