[clang] Reapply "[Clang] Transform lambda's constraints when instantiating parameter mapping (PR #207966)
Corentin Jabot via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 8 06:25:58 PDT 2026
================
@@ -16095,8 +16097,16 @@ TreeTransform<Derived>::TransformLambdaExpr(LambdaExpr *E) {
assert(FPTL && "Not a FunctionProtoType?");
AssociatedConstraint TRC = E->getCallOperator()->getTrailingRequiresClause();
- // If the concept refers to any outer parameter packs, we track the SubstIndex
- // for evaluation.
+ if (TRC) {
+ ExprResult E = getDerived().TransformLambdaConstraint(
+ const_cast<Expr *>(TRC.ConstraintExpr));
+ if (E.isInvalid())
+ return E;
+ TRC.ConstraintExpr = E.get();
+ }
+ // If the concept refers to any outer parameter packs, we track the
+ // SubstIndex for evaluation.
+ // FIXME: This seems unnecessary after transforming lambda constraints.
if (TRC && TRC.ConstraintExpr->containsUnexpandedParameterPack() &&
!TRC.ArgPackSubstIndex)
TRC.ArgPackSubstIndex = SemaRef.ArgPackSubstIndex;
----------------
cor3ntin wrote:
Did you try to remove that?
https://github.com/llvm/llvm-project/pull/207966
More information about the cfe-commits
mailing list