[Checkers] Nullness inference

Mahmood Ali mahmood at MIT.EDU
Fri Jan 2 13:26:36 EST 2009


Greetings Fausto,

It's great to see yet another more powerful nullness inference tool!

I have been experimenting with julia, and I was surprised by how  
accurate it is in the application mode.  Unfortunately, in library  
mode, it's neither precise nor sound for simple cases.  I should read  
the paper first to understand the guarantee claims Julia makes.

> Mahmood, can you update us on the status of support for stub files?

The Checker Framework should recognize the stub files that you are  
outputting, with a few notes:
1. Arrays:  I need to test whether array annotations are parsed  
properly.
2. Imports: The sample stubs you provided don't include the import  
statements for the annotation declarations, for  
checkers.nullness.quals.*.
3. Stub path: Currently, you need to supply the stub files in command  
line.  I will add support to specify a stubpath (analogous to  
classpath).  This should address your point regarding how julia  
outputs multiple stub files.

I should also note that julia inferred the parameter types for  
PolyNull.id2() incorrectly.  For a method declared as:

   public Object id2(Object p1, Object p2) {
     if (p1 == p2) return p1;
     else return p2;
   }

The declaration should be
   public @PolyNull Object id2(@PolyNull Object l1, @PolyNull Object  
l2);
not (notice l1 declaration)
   public @PolyNull Object id2(@Nullable Object l1, @PolyNull Object  
l2);

> it is impossible to prove that get() returns a @NonNull D even through
> the program always puts a @NonNull D inside the map.
I should note that currently we don't support annotated type  
variables.  I understand your point though.

Regards,
Mahmood




More information about the checkers mailing list