Closed zhaoyangyingmu closed 2 years ago
Eradicate checks that @Nullable
annotations are used correctly and consistently, whereas other checkers like biabduction or pulse look for program paths where they think NULL can be dereferenced, regardless of @Nullable
annotations. So, eradicate is more like a type system, whereas other analyses in infer typically do not rely on code annotations.
I used these two tools to scan a variety of projects. But I found that their warning types are almost the same, though the number of the type varies. Eradicate produces much more warnings than Infer for the same type, like "ERADICATE_PARAMETER_NOT_NULLABLE". Thus I am very curious about the reason behind it. I know that Eradicate makes use of @Nullable annotation, so is it because Infer does not use the annotation?