https://issues.dlang.org/show_bug.cgi?id=6269
Nick Treleaven <n...@geany.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |n...@geany.org --- Comment #5 from Nick Treleaven <n...@geany.org> --- I thought fixing this might break the `static if` workaround, but it seems fine at least with a template specialization: //struct S(T) //if (is(T : U*, U)) struct S(T : U*, U) { static if (is(T : U*, U)){} // no error though U exists pragma(msg, U); } alias A = S!(int*); I think because U already exists, the `is` in the `static if` does not try to introduce another U. --