// PR c++/101181 // { dg-do compile { target c++20 } } template bool { if constexpr (requires { typename T::type; }) return true; return false; }()> struct p { using type = void; }; template struct p { using type = typename T::type; }; template using P = typename p::type; using type1 = P; using type = void; struct A { using type = char; }; using type2 = P; using type2 = char;