On Saturday, 9 August 2014 at 05:42:09 UTC, H. S. Teoh via
Digitalmars-d-learn wrote:
Why would having opDispatch actually generate compile errors
cause
problems for __traits(compiles,...)? __traits(compiles...)
already works
fine with a whole bunch of other non-compiling stuff (by
gagging errors
while it attempts them).
The problem with opDispatch is that it gags too much, even when
the
resolution ultimately fails, so you're left with mysterious
"disappearances" of opDispatch with no hint as to what went
wrong. I'm
not familiar with this part of DMD, but surely there's a way to
make
this behave better??
T
You're right, between you and Artur and a night's rest I'm
realizing what an utter mess my post was. At that point I had
lost half a day debugging this and hadn't slept much so my
thought process was not particularly coherent.
The only thing I've ever really managed to get out of opDispatch
in terms of errors is to litter the thing with pragma(msg, ...)
and hope that, on visual inspection, something clicks and I can
figure out where I went wrong.
I think the real crux of my issue was misunderstanding "auto
ref". After I noticed that I could use "const" or "@property" or
some other qualifier instead of auto, I assumed that it implied
auto, so that ref @property => auto ref @property. Evidently not.
I was looking inside the method body for the issue when it was on
that first line the whole time.