[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