On Saturday, 18 January 2014 at 06:10:20 UTC, Walter Bright wrote:
On 1/17/2014 7:38 PM, Walter Bright wrote:
But I agree that compile time
detect of null reference bugs is better than runtime detection of them.


BTW, the following program:

  class C { int a,b; }

  int test() {
    C c;
    return c.b;
  }

When compiled with -O:

  foo.d(6): Error: null dereference in function _D3foo4testFZi

It isn't much, only working on intra-function analysis and only when the optimizer is used, but it's something. It's been in dmd for a long time.

But:
----
class C { int a, b; }

C create() pure nothrow {
        return null;
}

int test() pure nothrow {
        C c = create();
        return c.b;
}

void main() {
        test();
}
----

Print nothing, even with -O.
Maybe the idea to use C? for nullable references would be worth to implement.

Reply via email to