I may be mistaken but, as far as I know the fact that 'arr["x"] is created and set to null' before 'new object of class A is created' is a bug. Right ? -------------------------------------------------------- /* Order of execution (is this a bug ?): * - arr["x"] is created and set to null * - new object of class A is created * - arr["x"] is set to newly created object */ module program; A[string] arr; class A { this () { // at this point: // ("x" in arr) is true // arr["x"] is set to null } } void main () { arr["x"] = new A(); }
*** This issue has been marked as a duplicate of issue 3825 ***