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...

--

Reply via email to