[PATCH] D60939: [Concepts] Delayed Constraint Substitution

Saar Raz via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Apr 20 17:14:35 PDT 2019


saar.raz created this revision.
saar.raz added a reviewer: rsmith.
Herald added subscribers: cfe-commits, jfb.
Herald added a project: clang.

Constraint expressions will now not be substituted into when instantiating constrained declarations, and all substitution will be delayed to when satisfaction or subsumption have to be determined. Also, when explicitly instantiating a class template specialization, members whose constraints are not satisfied will not be instantiated. Depends on D50360 <https://reviews.llvm.org/D50360>.


Repository:
  rC Clang

https://reviews.llvm.org/D60939

Files:
  include/clang/AST/DeclTemplate.h
  include/clang/AST/RecursiveASTVisitor.h
  include/clang/Basic/DiagnosticSemaKinds.td
  include/clang/Sema/Sema.h
  include/clang/Sema/SemaConcept.h
  lib/AST/DeclTemplate.cpp
  lib/AST/StmtPrinter.cpp
  lib/AST/StmtProfile.cpp
  lib/Sema/SemaConcept.cpp
  lib/Sema/SemaExpr.cpp
  lib/Sema/SemaExprCXX.cpp
  lib/Sema/SemaOverload.cpp
  lib/Sema/SemaTemplate.cpp
  lib/Sema/SemaTemplateDeduction.cpp
  lib/Sema/SemaTemplateInstantiate.cpp
  lib/Sema/SemaTemplateInstantiateDecl.cpp
  lib/Sema/TreeTransform.h
  lib/Serialization/ASTReader.cpp
  lib/Serialization/ASTReaderDecl.cpp
  lib/Serialization/ASTReaderStmt.cpp
  lib/Serialization/ASTWriter.cpp
  lib/Serialization/ASTWriterDecl.cpp
  lib/Serialization/ASTWriterStmt.cpp
  test/CXX/concepts-ts/expr/expr.prim/expr.prim.id/p4.cpp
  test/CXX/concepts-ts/expr/expr.prim/expr.prim.req/equivalence.cpp
  test/CXX/concepts-ts/expr/expr.prim/expr.prim.req/nested-requirement.cpp
  test/CXX/concepts-ts/over/over.match/over.match.best/p1.cpp
  test/CXX/concepts-ts/temp/temp.arg.template/p3.cpp
  test/CXX/concepts-ts/temp/temp.constr/temp.constr.constr/non-function-templates.cpp
  test/CXX/concepts-ts/temp/temp.constr/temp.constr.decl/class-template-decl.cpp
  test/CXX/concepts-ts/temp/temp.constr/temp.constr.decl/p3.cpp
  test/CXX/concepts-ts/temp/temp.constr/temp.constr.decl/var-template-decl.cpp
  test/CXX/concepts-ts/temp/temp.constr/temp.constr.normal/p1.cpp
  test/CXX/concepts-ts/temp/temp.constr/temp.constr.order/class-template-partial-specializations.cpp
  test/CXX/concepts-ts/temp/temp.explicit/p10.cpp
  test/CXX/concepts-ts/temp/temp.inst/p17.cpp
  test/SemaTemplate/instantiate-requires-expr.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60939.195982.patch
Type: text/x-patch
Size: 125260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190421/7fedd520/attachment-0001.bin>


More information about the cfe-commits mailing list