Skip to content

Commit 6b08737

Browse files
committed
Reject lambdas in Build instead of ActOn
1 parent b02fd43 commit 6b08737

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

clang/lib/Sema/SemaExpand.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -253,13 +253,6 @@ StmtResult Sema::ActOnCXXExpansionStmtPattern(
253253
if (DiagnoseUnexpandedParameterPack(ExpansionInitializer))
254254
return StmtError();
255255

256-
// Reject lambdas early.
257-
if (auto *RD = ExpansionInitializer->getType()->getAsCXXRecordDecl();
258-
RD && RD->isLambda()) {
259-
Diag(ExpansionInitializer->getBeginLoc(), diag::err_expansion_stmt_lambda);
260-
return StmtError();
261-
}
262-
263256
return BuildNonEnumeratingCXXExpansionStmtPattern(
264257
ESD, Init, DS, ExpansionInitializer, LParenLoc, ColonLoc, RParenLoc,
265258
LifetimeExtendTemps);
@@ -298,6 +291,13 @@ StmtResult Sema::BuildNonEnumeratingCXXExpansionStmtPattern(
298291
return StmtError();
299292
}
300293

294+
// Reject lambdas early.
295+
if (auto *RD = ExpansionInitializer->getType()->getAsCXXRecordDecl();
296+
RD && RD->isLambda()) {
297+
Diag(ExpansionInitializer->getBeginLoc(), diag::err_expansion_stmt_lambda);
298+
return StmtError();
299+
}
300+
301301
// Otherwise, if it can be an iterating expansion statement, it is one.
302302
DeclRefExpr *Index = BuildIndexDRE(*this, ESD);
303303
IterableExpansionStmtData Data = TryBuildIterableExpansionStmtInitializer(

0 commit comments

Comments
 (0)