[lworld] RFR: JDK-8293321: [lworld] substitutability test shall support value class with cyclic membership

Mandy Chung mchung at openjdk.org
Fri Oct 28 17:22:08 UTC 2022


L-type allows cycles. `acmp` shall support value classes with cyclic membership.  This PR adds the support in the Java implementation of `acmp` (i.e. `ValueObjectMethods::isSubstitutable`). 

This patch includes [John's first cut to make a Y combinator method handle](https://github.com/openjdk/jdk/pull/10155) to enable a method handle to call itself recursively.    PR 10155 is adequate for internal use for now.  A separate RFE will follow to define such an API.

A separate issue [JDK-8296056](https://bugs.openjdk.org/browse/JDK-8296056) tracks the C2 `acmp` support.

-------------

Commit messages:
 - add @ignore test for -Xcomp
 - minor cleanup
 - Support recursive data type for value class
 - Merge branch 'lworld' of https://github.com/openjdk/valhalla into recursive-mh
 - prototype

Changes: https://git.openjdk.org/valhalla/pull/802/files
 Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=802&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8293321
  Stats: 639 lines in 3 files changed: 623 ins; 7 del; 9 mod
  Patch: https://git.openjdk.org/valhalla/pull/802.diff
  Fetch: git fetch https://git.openjdk.org/valhalla pull/802/head:pull/802

PR: https://git.openjdk.org/valhalla/pull/802



More information about the valhalla-dev mailing list