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
}

Reply via email to