[lworld] RFR: 8286491: Withdraw ValueObject and IdentityObject and introduce value and identity class modifiers [v10]

Rémi Forax forax at openjdk.java.net
Mon May 16 12:27:20 UTC 2022


On Mon, 16 May 2022 08:32:38 GMT, Srikanth Adayapalam <sadayapalam at openjdk.org> wrote:

>> Changes to javac, hotspot runtime, core libs and asmtools sources and tests
>
> 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 11 additional commits since the last revision:
> 
>  - Merge branch 'lworld' into JDK-8286491
>  - Fix langtools tier1 test failure: tools/javac/platform/createsymbols/CreateSymbolsTest.java
>  - Fix failure in tier1 langtools test: tools/javac/processing/model/completionfailure/NoAbortForBadClassFile.java
>  - Fix typo spotted in code review
>  - Fix tier1 langtools test failure: tools/javac/diags/CheckExamples.java
>  - Fix failing tier1 langtools test: tools/javac/SynchronizedClass.java
>  - Fix failing tier1 langtools test tools/javac/ClassFileModifiers/ClassModifiers.java
>  - Fix failing tier1 langtools test: tools/javap/TestSuperclass.java
>  - Fix tier1 failures in test/langtools/tools/javac/classfiles/attributes/innerclasses
>  - Fix failing tier3 test java/lang/instrument/IsModifiableClassAgent.java
>  - ... and 1 more: https://git.openjdk.java.net/valhalla/compare/bfec8811...fdc376eb

Foo.ref is a type projection, it does not change the behavior of the class at runtime.
So X.ref (or X.val) is only a valid operation on a value class, a class which at runtime will not use its address when == is called by example.

String.ref or String.val does not exist, otherwise it means that == should have different behaviors at runtime depending on the type that store the string.

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

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



More information about the valhalla-dev mailing list