In this case, Infer is correct: the method test() by itself is harmless, because it could be the case that "s" has been initialised before it is called. Infer does a bottom-up analysis (callees before callers), and will…
Infer computes fixpoints whenever there is a cycle in the call graph, until it reaches stable procedure summaries or timeouts.
(Infer dev here) One strength of Infer is that it is inter-procedural, yet not whole-program: each procedure gets analyzed independently. So it's cheap enough to run on large codebases while still able to find deep…
I'm posting from that very room right now.
In this case, Infer is correct: the method test() by itself is harmless, because it could be the case that "s" has been initialised before it is called. Infer does a bottom-up analysis (callees before callers), and will…
Infer computes fixpoints whenever there is a cycle in the call graph, until it reaches stable procedure summaries or timeouts.
(Infer dev here) One strength of Infer is that it is inter-procedural, yet not whole-program: each procedure gets analyzed independently. So it's cheap enough to run on large codebases while still able to find deep…
I'm posting from that very room right now.