RFR(S): 8225317: [lworld] Fix Class::asPrimaryType and isAssignableFrom C2 intrinsics after JDK-8223351
tobias.hartmann at oracle.com
Thu Jun 13 13:00:32 UTC 2019
please review the following fix:
- The asPrimaryType and asIndirectType intrinsics should return 'this' if the receiver is not a
value type mirror.
- The isAssignableFrom intrinsic incorrectly returns true for
MyValue1.class.isAssignableFrom(MyValue1.class.asIndirectType()). The problem is that the subtype
check passes because MyValue and MyValue? have the same klass. We need to additionally check if the
mirrors are equal if the supertype mirror is a "primary type".
- I've also refactored the value mirror check into an own method (at some point we need to rename
"value class" to "inline class" but that's out of the scope of this patch).
More information about the valhalla-dev