-
Bug
-
Resolution: Fixed
-
P4
-
repo-valhalla
"value records" implicitly extend the abstract class java.lang.Record.
Class loading throws IncompatibleClassChangeError.
Tests: (run with -Xint):
valhalla/valuetypes/ObjectMethods.java: test Object methods on value classes
valhalla/valuetypes/ObjectMethodsViaCondy.java: Test ObjectMethods::bootstrap call via condy
```
Caused by: java.lang.IncompatibleClassChangeError: Value type ObjectMethods$ValueRecord has an identity type as supertype
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1023)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.getDeclaredClasses0(Native Method)
at java.base/java.lang.Class.getDeclaredClasses(Class.java:2581)
at org.junit.platform.commons.util.ReflectionUtils.findNestedClasses(ReflectionUtils.java:1086)
at org.junit.platform.commons.util.ReflectionUtils.findNestedClasses(ReflectionUtils.java:1071)
```
Class loading throws IncompatibleClassChangeError.
Tests: (run with -Xint):
valhalla/valuetypes/ObjectMethods.java: test Object methods on value classes
valhalla/valuetypes/ObjectMethodsViaCondy.java: Test ObjectMethods::bootstrap call via condy
```
Caused by: java.lang.IncompatibleClassChangeError: Value type ObjectMethods$ValueRecord has an identity type as supertype
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1023)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.getDeclaredClasses0(Native Method)
at java.base/java.lang.Class.getDeclaredClasses(Class.java:2581)
at org.junit.platform.commons.util.ReflectionUtils.findNestedClasses(ReflectionUtils.java:1086)
at org.junit.platform.commons.util.ReflectionUtils.findNestedClasses(ReflectionUtils.java:1071)
```