// RUN: %clang_cc1 -std=c++2a -frelaxed-template-template-args -verify %s
concept C = ;
// expected-note@-1{{similar constraint}}
concept D = C<T> && ;
concept F = ;
// expected-note@-1{{similar constraint expressions not considered equivalent}}
; // expected-note 2{{'P' declared here}}
;
; // expected-note{{'Y' declared here}}
;
; // expected-note{{'W' declared here}}
S1<X> s11;
S1<Y> s12; // expected-error{{template template argument 'Y' is more constrained than template template parameter 'P'}}
S1<Z> s13;
S1<W> s14; // expected-error{{template template argument 'W' is more constrained than template template parameter 'P'}}
;
S2<X> s21;
S2<Y> s22;
S2<Z> s23;
;
using N = typename T::type;
using s31 = S3<N>;
using s32 = S3<Z>;