[clang] [PR49736] [C++2b] Correctly reject lambdas with requires clause and no parame...
authorMarek Kurdej <marek.kurdej+llvm.org@gmail.com>
Tue, 30 Mar 2021 11:50:07 +0000 (13:50 +0200)
committerMarek Kurdej <marek.kurdej+llvm.org@gmail.com>
Tue, 30 Mar 2021 11:53:55 +0000 (13:53 +0200)
commita99b8ae3909106d831d880c1647dabe92f470290
tree0ed411379768c4e40f5f60e6b6d8762b13b14f3f
parente694e19a793140b989364e5807630b635420533e
[clang] [PR49736] [C++2b] Correctly reject lambdas with requires clause and no parameter list

This fixes http://llvm.org/PR49736 caused by implementing http://wg21.link/P1102 (https://reviews.llvm.org/rG0620e6f4b76a9725dbd82454d58c5a68a7e47074), by correctly allowing requires-clause only:
1) directly after template-parameter-list
2) after lambda-specifiers iff parameter-declaration-clause is present (2nd kind of lambda-declarator)

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D99489
clang/lib/Parse/ParseExprCXX.cpp
clang/test/Parser/cxx-concepts-requires-clause.cpp
clang/test/Parser/cxx2a-template-lambdas.cpp
clang/test/Parser/cxx2b-lambdas.cpp