Sigh. If you're going to reply like that, it would be nice to
know you had the slightest fucking clue what you're talking about.
On Saturday, 16 June 2012 at 11:26:21 UTC, Timon Gehr wrote:
On 06/16/2012 07:19 AM, Bernard Helyer wrote:
On Friday, 15 June 2012 at 12:56:49 UTC, Timon Gehr wrote:
On 06/15/2012 02:19 PM, bearophile wrote:
Timon Gehr:
Why not allow equality operators to operate on types?
That's nice, of course. But is it possible?
Yes, certainly.
Not without losing the context insensitivity of the D grammar
(because
now we can't say for certain what "T == J" is
It is a comparison. That suffices for the parser. The grammar
stays completely context-independent.
But we can't say whether T is a type or a value. _That_ matters.
import some.other.module;
S a, b;
bool c = a == b;
Again, from a parser level.
///////
module some.other.module
struct S{ bool opEquals(){ hardDrive.format(); assert(0); } }
FROM A PARSER LEVEL.
That's a big thing to throw away,
T[2] foo;
auto b = foo[1]; // is this legal?
FROM A PARSER LEVEL, YES. >_<
I don't think this argument is valid.
Learn the difference between parsing valid and semantics, ffs.