================
@@ -101,8 +101,13 @@
concepts::ExprRequirement::ReturnTypeRequirement::getTypeConstraint() const {
// Search through the requirements, and see if any have a RecoveryExpr in it,
// which means this RequiresExpr ALSO needs to be invalid.
static bool RequirementContainsError(concepts::Requirement *R) {
- if (auto *ExprReq = dyn_cast<concepts::ExprRequirement>(R))
- return ExprReq->getExpr() && ExprReq->getExpr()->containsErrors();
+ if (auto *ExprReq = dyn_cast<concepts::ExprRequirement>(R)) {
+ if (ExprReq->isExprSubstitutionFailure())
+ return true;
+ if (auto *E = ExprReq->getExpr())
+ return E->containsErrors();
+ return false;
----------------
Thibault-Monnier wrote:
```cpp
return ExprReq->getExpr() && ExprReq->getExpr()->containsErrors();
```
was changed to
```cpp
if (auto *E = ExprReq->getExpr())
return E->containsErrors();
return false;
```
which is equivalent.
https://github.com/llvm/llvm-project/pull/176896
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits