I'm aware that the following has always been illegal:
enum a = new Foo();
However the following were used to work in older versions of DMD:
enum aa = [0 : new Foo("0"), 1 : new Foo("1")];
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.
It happens to break my following project:
https://github.com/bausshf/Diamond
More specifically:
https://github.com/bausshf/Diamond/blob/master/src/templates /parser.d#L13
The change has happened somewhere between 2.072.2 and the current version.