Open
Description
#include <concepts>
template<typename T>
concept IsOK = []<typename U> consteval -> bool {
return requires { requires std::same_as<typename U::InnerType, void>; };
}.template operator()<T>();
static_assert(!IsOK<int>);
int main() {}
The above code is simple and legal. However, clangd will crash when parsing it.
This is a regression back to clang-16. clang-15 is ok, see https://godbolt.org/z/e5jof54eo
Related issue: #141732