On Friday, 27 March 2015 at 21:33:19 UTC, bitwise wrote:
class Test{}

void main()
{
        const(Test)[string] tests;
        tests["test"] = new Test();
}

This code used to work, but after upgrading to dmd 2.067, it no longer does.
--Error: cannot modify const expression tests["test"]

How do I insert an item into an associative array of const objects?

FWIW, it was changed in https://github.com/D-Programming-Language/dmd/pull/4148

It seems Kenji argues that the first assignment (like in your case) should be allowed, because it's supposed to be a construction rather than an assignment, but I fail to see how the compiler could detect this in the general case.

Reply via email to