Caveat:
> This technique is often called "abstract interpretation" and JET internally uses Julia's native type inference implementation, so it can analyze code as fast/correctly as Julia's code generation.
If I understand that snippet correctly, they don't prove the absence of type errors (as a classical type checker does, e.g., in Haskell) but rather interpret the code to figure out whether pieces will (or even just might?) throw an error.
This is definitely a practical approach for a highly dynamic language like Julia (hint, python guys), but it has to leave gaps. There will be undetected type errors even in checked code. Whether that matters in practice, I don't know, though.