On Saturday, 1 February 2014 at 18:58:11 UTC, Andrei Alexandrescu
wrote:
Widget w = fetchWidget();
if (w)
{
... here w is automatically inferred as non-null ...
}
A library solution to this exists already:
Widget wn = fetchWidget();
if(auto w = wn.checkNull) {
// w implicitly converts to NotNull!Widget
}
I've had some difficulty in const correctness with my
implementation... but const correct is an entirely separate issue
anyway.
It isn't quite the same as if(w) but meh, does that matter? The
point of the static check is to make you think about it, and
that's achieved here.
If we do want to get the if(w) to work, I'd really prefer to do
that as a library solution too, since then we might be able to
use it elsewhere as well. Maybe some kind of template that lets
you do a scoped transformation of the type. idk really.