On Mon, 15 Nov 2010 14:36:33 -0500, Ellery Newcomer <ellery-newco...@utulsa.edu> wrote:

parser definitely does it for !in, but it doesn't for the other ones, and I didn't want to go digging all over the place for it.

Also, spec says yes for !in, but is silent for the other ones

http://www.digitalmars.com/d/2.0/operatoroverloading.html#equals

As far as is, it doesn't explicitly say that rewriting is done, but, it does spell out that to do the opposite, use !is. Maybe the spec should be updated to explicitly say x !is y is the same as !(x is y).

http://www.digitalmars.com/d/2.0/expression.html#IdentityExpression


On 11/15/2010 01:08 PM, Steven Schveighoffer wrote:
On Mon, 15 Nov 2010 14:06:34 -0500, Ellery Newcomer
<ellery-newco...@utulsa.edu> wrote:

quick question: are the following rewrites always valid:

e1 != e2 -> !(e1 == e2)
e1 !is e2 -> !(e1 is e2)
e1 !in e2 -> !(e1 in e2)

I believe this is in fact what the compiler does (rewriting).

-Steve

Reply via email to