What's the deal with "Warning: explicit element-wise assignment..."

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Tue Apr 15 03:38:04 PDT 2014


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[];


More information about the Digitalmars-d mailing list