On 02/09/2012 12:47 AM, Zach the Mystic wrote:
On 2/8/12 4:58 PM, Timon Gehr wrote:
This is indeed a bug.

The expression is rewritten internally into (pseudo code)

(auto __pitmp1481 = has.myArc, has.myArc.opUnary!"++"(), __pitmp1481);

This introduces a sub-expression with no effect.

Is that because has.myArc.opUnary!"++"() is going to be ignored at that
level of compiler activity? The compiler demands only that __pitmp1481
has a value at that point?

This is the issue:

void main(){
    int x;
    ++x, x; // error
}

While the whole expression has an effect, the single 'x' does not have an effect.


You may want to file a
bug report. For now, just using ++has.myArc; should work around the
issue.

http://d.puremagic.com/issues/show_bug.cgi?id=7467

Thanks, man. You're awesome!

You're welcome. =)

Reply via email to