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