[all-commits] [llvm/llvm-project] a1fe05: [clang] Preserve Qualifiers and type sugar in Temp...

Matheus Izvekov via All-commits all-commits at lists.llvm.org
Sun May 26 17:40:36 PDT 2024


  Branch: refs/heads/users/mizvekov/clang-improved-template-name-qualifiers
  Home:   https://github.com/llvm/llvm-project
  Commit: a1fe052b0fb0c96fc5ae38af7f13b19110d8096d
      https://github.com/llvm/llvm-project/commit/a1fe052b0fb0c96fc5ae38af7f13b19110d8096d
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2024-05-26 (Sun, 26 May 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/TemplateName.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/AST/ODRHash.cpp
    M clang/lib/AST/TemplateBase.cpp
    M clang/lib/AST/TemplateName.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprMember.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/test/AST/ast-dump-ctad-alias.cpp
    M clang/test/AST/ast-dump-decl.cpp
    M clang/test/AST/ast-dump-expr.cpp
    M clang/test/AST/ast-dump-template-decls.cpp
    M clang/test/AST/ast-dump-template-name.cpp
    M clang/test/AST/ast-dump-using-template.cpp
    M clang/test/CXX/drs/cwg1xx.cpp
    M clang/test/CXX/over/over.match/over.match.funcs/over.match.oper/p3-2a.cpp
    M clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p9-0x.cpp
    M clang/test/Index/print-type.cpp
    M clang/test/OpenMP/declare_mapper_messages.cpp
    M clang/test/Parser/cxx-template-template-recovery.cpp
    M clang/test/SemaCXX/cxx1y-variable-templates_in_class.cpp
    M clang/test/SemaTemplate/cwg2398.cpp
    M clang/test/SemaTemplate/instantiate-requires-expr.cpp
    M clang/test/SemaTemplate/nested-implicit-deduction-guides.cpp
    M clang/unittests/AST/TemplateNameTest.cpp

  Log Message:
  -----------
  [clang] Preserve Qualifiers and type sugar in TemplateNames

This patch improves the preservation of qualifiers
and loss of type sugar in TemplateNames.

This problem is analogous to https://reviews.llvm.org/D112374
and this patch takes a very similar approach to that patch,
except the impact here is much lesser.

When a TemplateName was written bare, without qualifications,
we wouldn't produce a QualifiedTemplate which could be used
to disambiguate it from a Canonical TemplateName. This had
effects in the TemplateName printer, which had workarounds
to deal with this, and wouldn't print the TemplateName
as-written in most situations.

There are also some related fixes to help preserve this type
sugar along the way into diagnostics, so that this patch can
be properly tested.

- Fix dropping the template keyword.
- Fix type deduction to preserve sugar in TST TemplateNames.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list