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



--- Comment #14 from Don <clugd...@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: -------

Reply via email to