// RUN: %clang_cc1 -std=c++20 -verify %s
// expected-no-diagnostics
namespace FunctionTemplate {
template<typename> struct S {
template<int> auto foo();
// Check that we don't confuse the depth-1 level-0 parameter of the generic
// lambda with the depth-1 level-0 parameter of the primary 'foo' template.
template<> constexpr auto foo<1>() {
return [](auto x) { return x; };
}
};
static_assert(S<void>().template foo<1>()(2) == 2);
}