https://issues.dlang.org/show_bug.cgi?id=23279
Basile-z <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice CC| |[email protected] Hardware|x86 |All OS|Windows |All --- Comment #5 from Basile-z <[email protected]> --- The thing is that for `__traits(hasMember, Tester, "setIt")`, DMD gags the errors during semantic of `Tester.setIt`. ``` if (e.ident == Id.hasMember) { /* Take any errors as meaning it wasn't found */ ex = ex.trySemantic(scx); // try == gag return ex ? True() : False(); } ``` During that same step, the semantic pass for the bad function is also executed (since it's a forward ref) but the error for the bad identifier is just ignored and compilation continues. Finally DMD reaches the code in glue.d and then an assertion fails. --
