1 // RUN: %clang_cc1 -std=c++20 -verify %s
2 // expected-no-diagnostics
3 
4 namespace FunctionTemplate {
5   template<typename> struct S {
6     template<int> auto foo();
7 
8     // Check that we don't confuse the depth-1 level-0 parameter of the generic
9     // lambda with the depth-1 level-0 parameter of the primary 'foo' template.
fooFunctionTemplate::S10     template<> constexpr auto foo<1>() {
11       return [](auto x) { return x; };
12     }
13   };
14 
15   static_assert(S<void>().template foo<1>()(2) == 2);
16 }
17