On Sunday, 22 April 2012 at 16:59:05 UTC, Jesse Phillips wrote:
As such checkNotNull shoud be more than throwing an exception. I have tried this, but it should get some constraints. Also wouldn't the new lambda syntax look nice with null here: null => unsafe(a)?
Yeah, I like this idea, though a lot of what I do is more like if(x !is null) use(x); hmmmm, the default could be to simply do nothing on the other side. I think we can work with the lambda idea. The other null related things on my mind are: 1) if we could make new return NotNull!T. I guess we could offer an alternative: NotNull!T create(T, Args...)(Args) { return assumeNotNull(new T(Args)); } Though "new" is so well entrenched that I don't think it is going anywhere, and having a language construct depend on a library structure is pretty meh. So meh. 2) When doing chained calls, have it simply ignore the rest when it hits null. suppose: if(a) if(auto b = a.something) b.more(); I guess some languages would call that a?.something?.more(); but I wonder if we can do it in a library somehow. ifNotNull(a).something.more(); Suppose it returns a wrapper of a that has an opDispatch or something that includes the if check, and wraps the rest of the return values. I'm pretty sure we can do that!