// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify namespace type { template concept C1 = true; template using A = T[10]; using a = A; namespace ns { template concept C2 = true; } template requires (sizeof(T1) <= sizeof(T2)) struct B { }; using b = B; template struct C { }; using c1 = C; using c2 = C; } namespace non_type { template concept C1 = true; template // expected-error{{expected a type}} // expected-note{{declared here}} // expected-error@-1 2{{concept named in type constraint is not a type concept}} // expected-error@-2 {{expected ',' or '>' in template-parameter-list}} int A = v; // expected-error{{'v' does not refer to a value}} } namespace temp { template struct test1 { }; // expected-note{{template is declared here}} template typename T> concept C1 = true; template // expected-error{{use of class template 'test1' requires template arguments}} // expected-error@-1 2{{concept named in type constraint is not a type concept}} using A = TT; // expected-error{{expected ';' after alias declaration}} }