================
@@ -1002,8 +1005,13 @@ ExprResult ConstraintSatisfactionChecker::EvaluateSlow(
const_cast<NamedDecl *>(Template), Constraint.getSourceRange());
TemplateArgumentListInfo OutArgs(Ori->LAngleLoc, Ori->RAngleLoc);
- if (S.SubstTemplateArguments(Ori->arguments(), *SubstitutedArgs, OutArgs) ||
- Trap.hasErrorOccurred()) {
+
+ if (ConceptId == TopLevelConceptId) {
----------------
zyn0217 wrote:
TopLevelConceptId is only set when we evaluate the constraint from user-written
concepts directly and therefore it's unnecessary to substitute into parameter
mapping because they're actually the same thing (both the parameter mapping and
the user written template arguments come from the user-written template
arguments, see CheckConceptTemplateId)
https://github.com/llvm/llvm-project/pull/207966
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits