Improve refineLocation a little
Summary:
It's possible for locals to be on the equivLocs list, but have
different types. This mostly comes about because of Uninit becoming
InitNull when you load the value of a local (so eg $a = $b will
convert an Uninit $b to an InitNull).
In extreme cases we can have TCell in one local, but eg TOptObj in
another. As a result, IsTypeC; JmpZ might think that both targets are
reachable (since its just looking at a TCell), when in fact exactly
one is.
Reviewed By: jano
Differential Revision:
D8290389
fbshipit-source-id:
50eda6cf92acde6a9d9b6519d919e2eb0371456d