On Fri, 27 Feb 2026 18:45:27 GMT, David Beaumont <[email protected]> wrote:
>> Adds a new AnnotationProcessor to read the @MigratedValueClass on
>> prospective value classes and generate the equivalent source file with the
>> 'value' keyword at each annotated class declaration.
>>
>> This adds new PROCESSOR_PATH variable to the compilation macro and use it
>> for annotation processing.
>> This also requires moving the plugin discovery path to the new variable (was
>> in classpath before) because the addition of a '--processor-path' flag
>> disables using the classpath for plugin discovery.
>>
>> For now this is all limited to `java.base` but that's expandable later
>> easily. There was an issue just enabling it for all modules however (esp.
>> `jdk.incubator` which might be special).
>>
>> While there is currently no specific unit test for this code, if it were to
>> fail to generate the correct value classes, a lot of other downstream tests
>> would fail.
>
> David Beaumont has updated the pull request incrementally with one additional
> commit since the last revision:
>
> More tests and tidying
make/jdk/src/classes/build/tools/valhalla/valuetypes/GenValueClasses.java line
76:
> 74: * we must generate sources for abstract classes, we only process one of
> them.
> 75: * <ul>
> 76: * <li>{@code @jdk.internal.ValueBased} appears on concrete value
> classes.
I would have expected to the processor to process (and likely claim) both
annotations. Can you say more here?
make/jdk/src/classes/build/tools/valhalla/valuetypes/GenValueClasses.java line
92:
> 90:
> 91: @Override
> 92: public synchronized void init(ProcessingEnvironment processingEnv) {
Was there a reason using the Filer API was ruled out?
make/jdk/src/classes/build/tools/valhalla/valuetypes/GenValueClasses.java line
141:
> 139: if (!e.getKind().isClass()) {
> 140: throw new IllegalStateException(
> 141: "Unexpected element kind (" + e.getKind() + ")
> for element: " + e);
Was using the Messager to emit an error here considered and rejected?
-------------
PR Review Comment:
https://git.openjdk.org/valhalla/pull/2180#discussion_r2866652700
PR Review Comment:
https://git.openjdk.org/valhalla/pull/2180#discussion_r2866653828
PR Review Comment:
https://git.openjdk.org/valhalla/pull/2180#discussion_r2866657994