[llvm-branch-commits] [clang] [libcxx] [clang] Preserve Qualifiers and type sugar in TemplateNames (PR #93433)

Ilya Biryukov via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon May 27 01:57:53 PDT 2024


================
@@ -9304,7 +9299,8 @@ TemplateName ASTContext::getAssumedTemplateName(DeclarationName Name) const {
 TemplateName ASTContext::getQualifiedTemplateName(NestedNameSpecifier *NNS,
                                                   bool TemplateKeyword,
                                                   TemplateName Template) const {
-  assert(NNS && "Missing nested-name-specifier in qualified template name");
----------------
ilya-biryukov wrote:

Does that mean we will start creating `QualifiedTemplateName` with a nullptr qualifier?
That's a big change in contract and there is quite a bit of code that does not check for null when accessing this member.

Could you explain a bit why we need this change? What are we trying to represent?
Are there any alternative AST nodes we could use or even add?

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


More information about the llvm-branch-commits mailing list