On Thu, 15 Oct 2009 21:55:07 -0500, Andrei Alexandrescu <[email protected]> wrote:
>I talked to Walter about T[new] today and it seems we are having a >disagreement. I'd prefer Walter's way with a provision that array literals are immutable and allocated statically: immutable(int)[] a = [1, 2, 3]; // no allocation here int[new] b = [1, 2]; // new storage is allocated and the literal is copied there int[] a = [1, 2, 3]; // error. dup needed auto c = [1, 2, 3]; // c is of type immutable(int)[] b[] = c; //b's length is changed and c's contents copied to b's storage auto d = [1, 2, 3].dup; // d is of type int[new] auto e = [1, 2, 3].idup; // e is of type immutable(int)[new] // arrays are true reference types int[new] a = [1, 2, 3]; b = a; a.length = 22; assert (a.length == b.length);
