// 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); | |
} |