Disallow null references in safe code?

Adam D. Ruppe destructionator at gmail.com
Sun Feb 2 05:55:10 PST 2014


On Sunday, 2 February 2014 at 13:15:42 UTC, Dicebot wrote:
> I agree that there is no much benefit in opt-in null-free 
> pointers. But if making those opt-out would have been possible, 
> I'd love it. Breaks every single D program out there though.

This isn't necessarily so bad. My biggest chunk of code that uses 
classes is probably my dom.d.... and there's only... I think six 
functions in there that can return null, and only one property 
that can be null. (In fact, I think like 1/5 of the lines in 
there are contracts and invariants relating to null anyway. Once 
I was getting segfaults because of a corrupted tree and that's 
ultimately how I tracked it down.)

So if "Element" were changed to be not null by default, the 
majority of the program should still compile! Then it is a simple 
case of looking at the compiler errors complaining about 
assigning null and throw in the Nullable! thingy which shouldn't 
take that long.


Code like

auto a = new A();
a.foo();

needn't break.


Really, I think it would be likely to find more bugs, or at least 
save time writing dozens of contracts - it would be the "worth 
it" kind of breakage.


More information about the Digitalmars-d mailing list