// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -verify namespace issue1 { template class B {}; template class P, class T> void f(P); // expected-note@-1 {{deduced type 'B<[...], (default) int>' of 1st parameter does not match adjusted type 'B<[...], float>' of argument [with P = B, T = int]}} void g() { f(B()); f(B()); // expected-error {{no matching function for call}} } } // namespace issue1 namespace issue2 { template struct match; template class t,typename T> struct match>; template class t,typename T0,typename T1> struct match> {}; template struct other {}; template struct match>; } // namespace issue2 namespace type { template struct A; template struct B; template class TT1, class T5 > struct B> ; template class TT2, class T8, class T9> struct B> {}; template struct B>; } // namespace type namespace value { template struct A; template struct B; template class TT1, class T4 > struct B> ; template class TT2, class T6, int V3> struct B> {}; template struct B>; } // namespace value namespace templ { template struct A; template class T4 = A> struct B {}; template struct C; template class TT1, class T7> struct C>; template class> class TT2, class T10, template class TT3> struct C> {}; template struct C>; } // namespace templ namespace class_template { template struct A; template struct B; template