equality operators on types

Bernard Helyer b.helyer at gmail.com
Sat Jun 16 19:04:35 PDT 2012


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.






More information about the Digitalmars-d mailing list