mizvekov wrote:

I think this is missing one detail: We now have the same qualifier in two 
places: The elaborated type node attached to the TST, and in the name of the 
TST itself.

While this is not ideal situation, I think it makes sense to just drop the 
TemplateName qualifier in the transform for now, so we don't keep transforming 
it twice, until we make the situation consistent again. Right now the NNS in 
the TST name is not printed, its only purpose there is to carry the template 
keyword information, which shouldn't be affected here.

The fact that this change somehow affects program semantics is still unexpected 
and unexplained.

As I said on the other PR, after we have built a TST, per current AST design, 
we shouldn't need the nested name specifier anymore beyond type sugar.

So either we built this TST too early, as in it should have stayed as a 
DependentTemplateSpecializationType longer or some such, or there is something 
that needs to be rectified in the AST design, but I can't imagine what.

If I had to take a guess, there is something wrong in the dependency 
computation for the NNS. Have you checked that?

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

Reply via email to