Null references redux

BCS none at anon.com
Sun Sep 27 10:02:27 PDT 2009


Hello Walter,

> The only reasonable thing a program can do if it discovers it is in an
> unknown state is to stop immediately.
> 

This whole thread is NOT about what to do on unknown states. It is about 
using the compiler to statically remove the possibility of one type of unknown 
state ever happening.

If D were to get non-null by default, with optional nullable, then without 
ASM/union hacks or the like, you can only get a seg-v when you use the non-default 
nullable type.

Given the above (and assuming memory safety), the only possible wrong-data-error 
left would be where the programmer explicitly places the wrong value in a 
variable. In my book, that is a non-starter because 1) it can happen now 
2) it can happen anywhere, not just at initialization 3) it can't be detected 
and 4) (assuming a well done syntax) in the cases where the compiler can't 
validate the code, the lazy thing to do and the correct thing to do (use 
a nullable type) will be the same.





More information about the Digitalmars-d mailing list