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

Srikanth Adayapalam sadayapalam at openjdk.java.net
Mon Apr 5 05:48:12 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.

Srikanth Adayapalam has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:

 - Merge branch 'lworld' into JDK-8244227
 - 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
   reference projection types with value projection types in a world where they share the
   same symbol.
 - 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:
  - all: https://git.openjdk.java.net/valhalla/pull/375/files
  - new: https://git.openjdk.java.net/valhalla/pull/375/files/406f61e6..42fefb15

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=valhalla&pr=375&range=03
 - incr: https://webrevs.openjdk.java.net/?repo=valhalla&pr=375&range=02-03

  Stats: 24 lines in 3 files changed: 22 ins; 0 del; 2 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