Disallow null references in safe code?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sat Feb 1 10:58:12 PST 2014


On 1/31/14, 5:39 PM, Jonathan M Davis wrote:
> Regardless, we're not adding anything with regards to non-nullable references
> to the language itself [...]

I think the sea is changing here. I've collected hard data that reveals 
null pointer dereference is a top problem for at least certain important 
categories of applications. Upon discussing that data with Walter, it 
became clear that no amount of belief to the contrary, personal 
anecdote, or rhetoric can stand against the data.

It also became clear that a library solution would improve things but 
cannot compete with a language solution. The latter can do local 
flow-sensitive inference and require notations only for function 
signatures. Consider:

class Widget { ... }

void fun()
{
     // assume fetchWidget() may return null
     Widget w = fetchWidget();
     if (w)
     {
         ... here w is automatically inferred as non-null ...
     }
}

Bottom line: a language change for non-null references is on the table. 
It will be an important focus of 2014.


Andrei



More information about the Digitalmars-d mailing list