[Issue 4231] Solitary opUnary Postincrement and Postdecrement user defined operators are broken.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jun 8 04:13:42 PDT 2010


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



--- Comment #14 from Don <clugdbug at yahoo.com.au> 2010-06-08 04:13:39 PDT ---
(In reply to comment #13)
> Something about that code bugs me, but I'm having trouble deciding exactly what
> it is.
> 
> Part of it is that there's redundant work.  Move the new code inside the else
> block?

Although the code in the else block is the same, it's for a very different
reason. But I'm not sure it's correct. For example,
int x;
x, ++x;
doesn't raise an error. Yet the first x has no effect!
Shouldn't the part in the else clause be e1->sideeffect() && e2->sideeffect() ?


> Part of it is also that it presumes a good bit about the structure of the tree
> inside a comma expression.  The comment suggests that it can only come from
> generated code w/in the compiler.  How true is that?  How future proof is it?

Declarations are not legal inside comma expressions. But the compiler generates
them in several places. They are also used in implementing struct constructors
and postblit, for example.
There's definitely something a bit weird about the compiler generating code
that couldn't get past the parsing stage.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list