[lworld] RFR: 8244227: [lworld] Explore an implementation where the reference projection and value projection types are backed by a single class symbol

Srikanth Adayapalam sadayapalam at openjdk.java.net
Wed Mar 31 12:37:46 UTC 2021


This PR overhauls the existing implementation/representation of reference projection types  and the inline types so that both share the same underlying symbol, much like how an infinite family of parameterized types that originate from the same generic type are modelled using the same underlying symbol.

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

Commit messages:
 - Various changes to handle projections sharing a symbol/not having their own symbols
 - Introducce another variant of Types.asSuper to operate on Type's so as not to confuse
 - Nestmates and innerclasses attribute generation, classfile creation, signature management ...
 - Genesis, construction, preservation and propagation of reference projection type
 - Get out of the business of having to maintain the doppleganger symbol in sync with original
 - In diagnostics and debug strings while mentioning projection types, use .ref/.val rather than $ref/$val

Changes: https://git.openjdk.java.net/valhalla/pull/375/files
 Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=375&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8244227
  Stats: 540 lines in 28 files changed: 185 ins; 245 del; 110 mod
  Patch: https://git.openjdk.java.net/valhalla/pull/375.diff
  Fetch: git fetch https://git.openjdk.java.net/valhalla pull/375/head:pull/375

PR: https://git.openjdk.java.net/valhalla/pull/375



More information about the valhalla-dev mailing list