https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103540
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Please provide the code here in bugzilla, not just a URL, as requested at https://gcc.gnu.org/bugs/ #include <type_traits> template<typename N> concept StrictNodeType = requires { typename N::something; }; template<StrictNodeType N> using Int = int; template<int> struct X {using something = Int<X>; }; using ThisBreaks = Int<X<0>>; As well as the "depends on itself" error and the incomplete "because" note, there is an error pointing to exactly the right spot already: <source>:11:17: error: template constraint failure for 'template<class N> requires StrictNodeType<N> using Int = int' 11 | struct X {using something = Int<X>; }; | ^~~~~~~~~