https://issues.dlang.org/show_bug.cgi?id=20092
Basile-z <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from Basile-z <[email protected]> --- The loop happens in dmd.optimize.Expression.Expression_optimize(Expression e, int result, bool keepLvalue) But the background problem is that template parameter type deduction gives `ubyte ` instead of `void`. As a consequence the protections against infinite recursion when the optimizer visit a CastExpression don't work. For example by rewriting the call in the test case this way (void[1]).init.front!void; that works but (void[1]).init.front!ubyte; loops... --
