[all-commits] [llvm/llvm-project] fdf80e: [Concepts] Constraint Enforcement & Diagnostics

Saar Raz via All-commits all-commits at lists.llvm.org
Thu Dec 5 15:34:50 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: fdf80e86a52849813d05da4b6c25884c06ba9e98
      https://github.com/llvm/llvm-project/commit/fdf80e86a52849813d05da4b6c25884c06ba9e98
  Author: Saar Raz <saar at raz.email>
  Date:   2019-12-06 (Fri, 06 Dec 2019)

  Changed paths:
    A clang/include/clang/AST/ASTConcept.h
    M clang/include/clang/AST/ExprCXX.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/TemplateDeduction.h
    A clang/lib/AST/ASTConcept.cpp
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/CMakeLists.txt
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/ExprCXX.cpp
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.id/p3.cpp
    A clang/test/CXX/temp/temp.constr/temp.constr.constr/function-templates.cpp
    A clang/test/CXX/temp/temp.constr/temp.constr.constr/non-function-templates.cpp
    A clang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp

  Log Message:
  -----------
  [Concepts] Constraint Enforcement & Diagnostics

Part of the C++20 concepts implementation effort.
- Associated constraints (requires clauses, currently) are now enforced when instantiating/specializing templates and when considering partial specializations and function overloads.
- Elaborated diagnostics give helpful insight as to why the constraints were not satisfied.
Phabricator: D41569

Re-commit, after fixing some memory bugs.




More information about the All-commits mailing list