On Tue, 15 Apr 2014 11:47:24 -0400, bearophile <bearophileh...@lycos.com> wrote:

Andrei Alexandrescu:

This doesn't quite explain much. -- Andrei

Look at the issue:
https://issues.dlang.org/show_bug.cgi?id=7444

I agree with Andrei, and the rejection of the change.

On the left hand side, the [] operator is special *for arrays* in that it denotes you want to do an element-wise copy. On the right hand side, this is not the case, [] is simply an operator. It's a no-op if the rhs is an array, since [] just gets the array again.

Requiring it simply adds unneeded hoops through which you must jump, the left hand side denotes the operation, the right hand side does not, and in fact, this causes problems with types that overload [] to return an array (a very logical operation).

In particular, this would case issues with dcollections' ArrayList which returns a slice when doing []. The other example from Benjamin is essentially the same thing.

Note -- it would be nice (and more consistent IMO) if arr[] = range worked identically to arr[] = arr.

-Steve

Reply via email to