On Tuesday, 4 February 2014 at 01:09:52 UTC, Meta wrote:
On Monday, 3 February 2014 at 23:34:59 UTC, deadalnix wrote:
On Monday, 3 February 2014 at 22:23:52 UTC, Meta wrote:
If null is an invalid value to assign to a pointer, then
there's no issue.
int* foo()
{
//Error: cannot implicitly convert typeof(null) to type int*
return "/etc/foo".exists ? new int : null;
}
Only cross abstraction boundaries is sufficient.
Can you explain?
void foo() {
Widget w = null; // OK
w.foo(); // Error w might be null.
w = new Widget();
w.foo(); // OK
if(condition) {
w = null;
}
w.foo(); // Error
if(w !is null) {
w.foo(); // OK
}
bar(w); // Error, w might be null=
return w; // Error, w might be null
}