rjmccall wrote:

> > You should at minimum be able to layer the `NestedNameSpecifier` change on 
> > top of the `TagType` change. I can't see why that wouldn't work.
> > 
> > 1. Add the structure for sugary `TagType`s.
> > 2. Replace `ElaboratedType` with sugary `TagType`s.
> > 3. Change the representation of NNS.
> 
> Well it's not just TagTypes which were changed in order to not need 
> ElaboratedType, everything else too (TypedefTypes, 
> TemplateSpecializationTypes, etc).
> 
> It would be really annoying to remove ElaboratedType from just TagType, leave 
> it on everything else, while making every test pass, due for example how 
> complicated some AST matchers would become in the intermediary state.

I actually don't see why. AST matching becomes heinously complicated in the 
*end* state of your change if you don't have methods to ask questions like "was 
this written as an elaborated type" or whatever else the client code in Sema is 
looking for. So presumably you do have those predicates, and the end state uses 
them. You can certainly implement those predicates in terms of `ElaboratedType` 
while it still exists. That should be patch 1.

https://github.com/llvm/llvm-project/pull/147835
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to