Re-apply "Deferred Concept Instantiation Implementation""
authorErich Keane <erich.keane@intel.com>
Fri, 1 Jul 2022 18:21:21 +0000 (11:21 -0700)
committerErich Keane <erich.keane@intel.com>
Wed, 17 Aug 2022 13:24:40 +0000 (06:24 -0700)
commitd483730d8c3fa2e0d4192b2f3c61c761b124e6ad
treea5d5032cedd2f37a23867ba81085d11f670b7624
parent5ad7cc7f211b604f250500dbc4d7eb7df00b5cfd
Re-apply "Deferred Concept Instantiation Implementation""

This reverts commit 258c3aee54e11bc5c5d8ac137eb15e8d5bbcc7e4.

This should fix the libc++ issue that caused the revert, by re-designing
slightly how we determined when we should evaluate the constraints.
Additionally, many of the other components to the original patch (the
NFC parts) were committed separately to shrink the size of this patch
for review.

Differential Revision: https://reviews.llvm.org/D126907
19 files changed:
clang/docs/ReleaseNotes.rst
clang/include/clang/Sema/Sema.h
clang/include/clang/Sema/Template.h
clang/lib/Sema/SemaConcept.cpp
clang/lib/Sema/SemaExpr.cpp
clang/lib/Sema/SemaOverload.cpp
clang/lib/Sema/SemaTemplate.cpp
clang/lib/Sema/SemaTemplateDeduction.cpp
clang/lib/Sema/SemaTemplateInstantiate.cpp
clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
clang/lib/Sema/TreeTransform.h
clang/test/CXX/temp/temp.constr/temp.constr.constr/non-function-templates.cpp
clang/test/CXX/temp/temp.constr/temp.constr.order/class-template-partial-specializations.cpp
clang/test/CXX/temp/temp.constr/temp.constr.order/var-template-partial-specializations.cpp
clang/test/SemaTemplate/concepts-friends.cpp [new file with mode: 0644]
clang/test/SemaTemplate/concepts.cpp
clang/test/SemaTemplate/deferred-concept-inst.cpp [new file with mode: 0644]
clang/test/SemaTemplate/instantiate-requires-clause.cpp
clang/test/SemaTemplate/trailing-return-short-circuit.cpp [new file with mode: 0644]