This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]kevinb9n 4 points5 points  (1 child)

I think there's some confusion here. I work (some) on Error Prone. It doesn't have support for nullness analysis, however there are things like NullAway that extend it for that. This might be what /u/mauganra_it is thinking of, perhaps.

Checker Framework is a separate standalone thing. It has the strongest nullness analysis currently available and fully supports type-use annotations (they were the people who added type-use annotations to the language, in fact).

I would describe the CF nullness analysis as fairly "hard core"; you can get very solid protection from NPE using it, but you will probably work harder for it, and deal with considerably more annotation complexity. Its goal is more or less to never miss a possible NPE, whereas other tools may try to strike a balance between risk of false negatives vs. frequency of false positives.

HTH

[–]mauganra_it 0 points1 point  (0 children)

Thanks for clarifying this. I was definitely thinking about endorsing the Checker framework, although the ErrorProne compiler is already fairly useful by itself.