================
@@ -1238,6 +1238,9 @@ struct DeclaratorChunk {
 
   ParsedAttributesView AttrList;
 
+  using LateAttrListTy = SmallVector<void *, 1>;
----------------
rapidsna wrote:

This tracks pointers to `Parser::LateParsedAttribute`, a member struct of 
`class Parser` defined in `Parser.h`.

I couldn't include `Parser.h` because of circular dependencies. I also looked 
at a few other options:

- Duplicating the type in DeclSpec.h — In downstream, we created another struct 
called `LateParsedAttrInfo` in `DeclSpec.h`, but it's essentially a duplicate 
of `Parser::LateParsedAttribute`, so I don't think that's the right approach.
- Forward declaring `Parser::LateParsedAttribute` — Can't do it since it's a 
nested member struct.
- Hoisting `LateParsedAttribute` out of class Parser — It inherits from 
`Parser::LateParsedDeclaration`, which is inherited by multiple other member 
structs and referenced all over the codebase. That would require too invasive 
changes.

I can still create a type alias to make it more readable:
`using LateAttrOpaquePtr = void*;`

Would that work for you?


https://github.com/llvm/llvm-project/pull/166491
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to