Value Object has been introduced since JDK 28 (as a preview feature), however
it cannot be handled in SA.
public value class Test{
public static value record Rec(byte recA, byte recB){};
byte a;
byte b;
Rec rec;
byte c;
}
`rec` as `Test$Rec` can be inlined into the instance of `Test`, but it would be
shown as "Bad OOP" in "inspect" on SA. SA should show valid values in `rec`.
Note that his change would expand flattened object in below in `inspect` CLHSDB
command:
hsdb> inspect 0xc22419e8
instance of Oop for LingeredAppWithValueObject$ValueObj @ 0x00000000c22419e8
(size = 16)
_mark: 73201086130815105
a: 1
b: 2
rec:
recA: 10
recB: 20
c: 3
---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK
Interim AI Policy](https://openjdk.org/legal/ai).
-------------
Commit messages:
- 8390106: SA: Inline object support is incomplete
Changes: https://git.openjdk.org/jdk/pull/32310/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=32310&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8390106
Stats: 361 lines in 13 files changed: 348 ins; 4 del; 9 mod
Patch: https://git.openjdk.org/jdk/pull/32310.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/32310/head:pull/32310
PR: https://git.openjdk.org/jdk/pull/32310