// PR c++/110927 // { dg-do compile { target c++20 } } template struct A { template struct B { using type = B; }; template using type = U; }; template<> struct A { }; template concept C1 = requires { typename A::template B::type; }; template concept C2 = requires { typename A::template B; }; template concept C3 = requires { typename A::template type; }; static_assert(C1); static_assert(C2); static_assert(C3); static_assert(!C1); static_assert(!C2); static_assert(!C3);