[clang] [Clang][Sema] qualifier should be transformed (PR #94725)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Sat Jun 22 21:18:40 PDT 2024


mizvekov wrote:

> I mean we can transform `QualifiedTemplateName` to `DependentTemplateName` and this is what this patch does.

But that goes against the natural flow of template instantiation. We can't go back from non-dependent into dependent.
We can't transform a regular TemplateName back into a DependentTemplateName, just as we can't go back to DependentTemplateSpecializationType from a TemplateSpecializationType.

That's why I find this so confusing...

> If we build a `DependentTemplateName` instead of `QualifiedTemplateName` earlier would affect the code in partial specialization like:
> 
> ```c++
> template<typename T>
> struct A<T*>::B<T*>
> ```

Can you elaborate on that? That still seems like the right path to me, you probably found another problem, that happens some times.

https://github.com/llvm/llvm-project/pull/94725


More information about the cfe-commits mailing list