On Tue, 25 Feb 2014 05:28:42 -0500, Daniel Murphy <yebbliesnos...@gmail.com> wrote:

"Steven Schveighoffer" wrote in message news:op.xbs1naiueav7ka@stevens-macbook-pro.local...

A wild wild guess is that there was code in the compiler that used to require it (after all, it was required a long time ago), and somehow it got reactivated by accident.

But wild guesses don't help fix bugs :)

Walter + Andrei did it, and it was completely intentional, and it was known that it would break code.

This was the wrong fix. Druntime should be modified to use TypeInfo.equals instead of TypeInfo.compare. Compare is no longer needed, since it's only used to check for equality.

Note that the docs say BOTH opEquals and opCmp should be specified, because either can be used.

I would suggest a proper interim fix is to only reject key types that define opEquals, but not opCmp. Then switch to using equals in druntime. Finally, get rid of AA's as a specialized type, map them cleanly to a template.


Reply via email to