Commit
5aba990c724f7bd7ca4d633597590ae9bc1e703a
by Devin PapineauImprove VPClass::mustBeNotEqual()
This will allow reference comparisons to be folded to "not equal" more
often. Previously VPClass::mustBeNotEqual() would return true only when
the constraints could be distinguished by:
- known null vs. known non-null,
- known object index (when both are known to be non-null), or
- fixed-class class pointer (when both are known to be non-null).
Now most of the cases where it returns true require only one of the two
constraints to forbid null. Additionally, the constraints can now also
be distinguished by:
- location (heap, stack, class object),
- array element size,
- array length,
- class object type bound (non-fixed), and
- instance type bound (fixed or not).
(commit: 5aba990)