<div dir="ltr"><div>Up to      2.062  : Failure with output:</div><div>-----</div><div>onlineapp.d(10): Error: cannot evaluate new Foo("0") at compile time</div><div>onlineapp.d(10): Error: cannot evaluate new Foo("1") at compile time</div><div>-----</div><div><br></div><div>2.063   to 2.072.2: Success with output: Hello D</div><div>Since      2.073.2: Failure with output: onlineapp.d(10): Error: variable onlineapp.aa : Unable to initialize enum with class or pointer to struct. Use static const variable instead.</div><div><br></div><div><a href="https://run.dlang.io/is/mJqayC">https://run.dlang.io/is/mJqayC</a><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Oct 8, 2017 at 4:29 AM, bauss via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm aware that the following has always been illegal:<br>
<br>
enum a = new Foo();<br>
<br>
However the following were used to work in older versions of DMD:<br>
<br>
enum aa = [0 : new Foo("0"), 1 : new Foo("1")];<br>
<br>
When did that change happen and what was the reason for the change? I were depending on AA's created like that to use them at compile-time.<br>
<br>
It happens to break my following project:<br>
<a href="https://github.com/bausshf/Diamond" rel="noreferrer" target="_blank">https://github.com/bausshf/Dia<wbr>mond</a><br>
<br>
More specifically:<br>
<a href="https://github.com/bausshf/Diamond/blob/master/src/templates/parser.d#L13" rel="noreferrer" target="_blank">https://github.com/bausshf/Dia<wbr>mond/blob/master/src/templates<wbr>/parser.d#L13</a><br>
<br>
The change has happened somewhere between 2.072.2 and the current version.<br>
</blockquote></div><br></div>