================
@@ -1763,9 +1763,34 @@ namespace {
if (TA.isDependent())
return CXXRecordDecl::LambdaDependencyKind::LDK_AlwaysDependent;
}
+ if (auto *CD = dyn_cast_if_present<ImplicitConceptSpecializationDecl>(
+ LSI->Lambda->getLambdaContextDecl())) {
+ if (llvm::any_of(CD->getTemplateArguments(),
+ [](const auto &TA) { return TA.isDependent(); }))
+ return CXXRecordDecl::LambdaDependencyKind::LDK_AlwaysDependent;
+ }
return inherited::ComputeLambdaDependency(LSI);
}
+ AssociatedConstraint TransformConstraint(AssociatedConstraint AC) {
+ // If the concept refers to any outer parameter packs, we track the
+ // SubstIndex for evaluation.
+ if (AC && AC.ConstraintExpr->containsUnexpandedParameterPack() &&
+ !AC.ArgPackSubstIndex)
+ AC.ArgPackSubstIndex = SemaRef.ArgPackSubstIndex;
----------------
zyn0217 wrote:
I made the default behavior no-op in TreeTransform. We want the transfrom of
constraints in template instantiator.
https://github.com/llvm/llvm-project/pull/195995
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits