On Friday, 2 October 2015 at 11:19:51 UTC, Andrei Alexandrescu
wrote:
assert(e1 == e2)
could be lowered into:
{
auto a = e1, b = e2;
if (a == b) return;
onAssertFailed!"=="(a, b, __FILE__, __LINE__, __FUNCTION__,
__MODULE__);
}()
So lowering is kind of like macro expansion for AST-nodes, then?
Is DMD clever enough to avoid trigger postblits for
auto a = e1, b = e2;
if (a == b) return;
? Or is that part of the question whether this will work?
I guess we only need on symbol name for `onAssertFailed` then
instead of `assertBinOp` and `assertUnOp`, right?