@@ -741,8 +741,9 @@ ExprResult ConstraintSatisfactionChecker::Evaluate(
741741 UnsubstitutedConstraintSatisfactionCacheResult Cache;
742742 Cache.Satisfaction .ContainsErrors = Satisfaction.ContainsErrors ;
743743 Cache.Satisfaction .IsSatisfied = Satisfaction.IsSatisfied ;
744- std::copy (Satisfaction.Details .begin () + Size, Satisfaction.Details .end (),
745- std::back_inserter (Cache.Satisfaction .Details ));
744+ Cache.Satisfaction .Details .insert (Cache.Satisfaction .Details .end (),
745+ Satisfaction.Details .begin () + Size,
746+ Satisfaction.Details .end ());
746747 Cache.SubstExpr = E;
747748 S.UnsubstitutedConstraintSatisfactionCache .insert ({ID, std::move (Cache)});
748749
@@ -873,8 +874,9 @@ ExprResult ConstraintSatisfactionChecker::Evaluate(
873874 UnsubstitutedConstraintSatisfactionCacheResult Cache;
874875 Cache.Satisfaction .ContainsErrors = Satisfaction.ContainsErrors ;
875876 Cache.Satisfaction .IsSatisfied = Satisfaction.IsSatisfied ;
876- std::copy (Satisfaction.Details .begin () + Size, Satisfaction.Details .end (),
877- std::back_inserter (Cache.Satisfaction .Details ));
877+ Cache.Satisfaction .Details .insert (Cache.Satisfaction .Details .end (),
878+ Satisfaction.Details .begin () + Size,
879+ Satisfaction.Details .end ());
878880 Cache.SubstExpr = E;
879881 S.UnsubstitutedConstraintSatisfactionCache .insert ({ID, std::move (Cache)});
880882 return E;
@@ -1017,8 +1019,9 @@ ExprResult ConstraintSatisfactionChecker::Evaluate(
10171019 UnsubstitutedConstraintSatisfactionCacheResult Cache;
10181020 Cache.Satisfaction .ContainsErrors = Satisfaction.ContainsErrors ;
10191021 Cache.Satisfaction .IsSatisfied = Satisfaction.IsSatisfied ;
1020- std::copy (Satisfaction.Details .begin () + Size, Satisfaction.Details .end (),
1021- std::back_inserter (Cache.Satisfaction .Details ));
1022+ Cache.Satisfaction .Details .insert (Cache.Satisfaction .Details .end (),
1023+ Satisfaction.Details .begin () + Size,
1024+ Satisfaction.Details .end ());
10221025 Cache.SubstExpr = CE;
10231026 S.UnsubstitutedConstraintSatisfactionCache .insert ({ID, std::move (Cache)});
10241027 return CE;
@@ -1222,10 +1225,10 @@ bool Sema::CheckConstraintSatisfaction(
12221225 return false ;
12231226}
12241227
1225- static const ExprResult
1226- SubstituteConceptsInConstrainExpression (Sema &S, const NamedDecl *D,
1227- const ConceptSpecializationExpr *CSE,
1228- UnsignedOrNone SubstIndex) {
1228+ static ExprResult
1229+ SubstituteConceptsInConstraintExpression (Sema &S, const NamedDecl *D,
1230+ const ConceptSpecializationExpr *CSE,
1231+ UnsignedOrNone SubstIndex) {
12291232
12301233 // [C++2c] [temp.constr.normal]
12311234 // Otherwise, to form CE, any non-dependent concept template argument Ai
@@ -1260,7 +1263,7 @@ bool Sema::CheckConstraintSatisfaction(
12601263 const ConceptSpecializationExpr *ConstraintExpr,
12611264 ConstraintSatisfaction &Satisfaction) {
12621265
1263- ExprResult Res = SubstituteConceptsInConstrainExpression (
1266+ ExprResult Res = SubstituteConceptsInConstraintExpression (
12641267 *this , nullptr , ConstraintExpr, ArgPackSubstIndex);
12651268 if (!Res.isUsable ())
12661269 return true ;
@@ -2302,7 +2305,7 @@ NormalizedConstraint *NormalizedConstraint::fromConstraintExpr(
23022305 ConceptDecl *CD = CSE->getNamedConcept ()->getCanonicalDecl ();
23032306
23042307 ExprResult Res =
2305- SubstituteConceptsInConstrainExpression (S, D, CSE, SubstIndex);
2308+ SubstituteConceptsInConstraintExpression (S, D, CSE, SubstIndex);
23062309 if (!Res.isUsable ())
23072310 return nullptr ;
23082311
0 commit comments