Somedude:

> Just for the record, non-null static and runtime analysis is implemented
> in a number of Java projects.
> 
> http://eclipseandjazz.blogspot.com/2011/12/inter-procedural-null-analysis-using.html
> Anotation based Static analysis for eclipse

It looks very nice.

Instead of that Java syntax:
@NonNull Object foo(@NonNull Object x) {...

For D2 I have suggested a more handy and short syntax, a trailing @ means 
non-null:
object@ foo(object@ x) {...

A leading (usually optional, because it's the default, but in some situations 
you need to use it) ? means nullable:
object? foo(object? x) {...

The question mark is useful in some situations:
Foo@ foo = new Foo(); // foo is non-null
auto f = cast(?)foo; // cast to nullable

Some notes here:
http://d.puremagic.com/issues/show_bug.cgi?id=4571

Bye,
bearophile

Reply via email to