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