Get the latest tech news
Interprocedural Sparse Conditional Type Propagation
We prototyped an interprocedural static analysis tool using sparse conditional constant propagation.
We wouldn’t even get ClassUnion[String, Integer] because we don’t keep each call site separate, so from the perspective of the analysis, we could be looking at String+Integer, which doesn’t have a known type (in fact, it probably raises an exception or something). However, because we know the analysis is so fast, it seems possible to imagine that we could selectively split/specialize call sites of built-in methods to add sensitivity in specific places without increasing the running time by much. We published the code on GitHub as a static companion artifact to go with this article and nothing more; it is an experiment that we built, but not a prelude to a bigger project nor is it a tool we expect others to contribute to.
Or read this on Hacker News