On Tuesday, 15 April 2014 at 06:31:02 UTC, Andrei Alexandrescu
wrote:
We've just enabled warnings as errors in our build system at
work and suddenly:
Warning: explicit element-wise assignment <exprnew> is better
than <expr>
where <exprnew> and <expr> are expressions picked from the
code. For example, this wasn't accepted:
writeAvail_[0 .. buf.length] = buf;
but this was:
writeAvail_[0 .. buf.length] = buf[];
The type of the involved variables were as trivial as ubyte[]
and in ubyte[] respectively.
What's the idea?
Andrei
It is mostly a style warning but greatly helps to reduce reading
ambiguity:
// "assign rvalue to lvalue element-wise"
// OR
// "assign rvalue to all members of lvalue"
// need to know rvalue type to be sure
lvalue[] = rvalue;
// clear and simple
lvalue[] = rvalue[];