RFR: 8356894: Adjust CreateSymbols to properly handle the newly added @jdk.internal.RequiresIdentity
Jan Lahoda
jlahoda at openjdk.org
Wed May 14 14:53:34 UTC 2025
This patch builds on top of https://github.com/openjdk/jdk/pull/24746, and adds support for `@RequiresIdentity` to `--release`.
Important parts of the patch:
- `CreateSymbols` now keeps `RuntimeInvisibleTypeAnnotationsAttribute`/`RuntimeVisibleTypeAnnotationsAttribute` annotations
- for `ct.sym`, the `@RequiresIdentity` annotation is converted to a synthetic `@RequiresIdentity+Annotation`, as for other similar annotations.
- for parameters, there's a new flag that marks the parameter as "requires identity". The reason is that the other synthetic annotations on symbols used by `ct.sym`/`--release` are normally not added to the model, and hence invisible in the model. Flags are usually used instead of the synthetic annotations in javac. Using this new flag allows us to keep the behavior the same for the `@RequiresIdentity+Annotation`
- for type variables, the synthetic annotation is filtered out in the API method
-------------
Depends on: https://git.openjdk.org/jdk/pull/24746
Commit messages:
- Cleanup.
- Fixing build
- Adjustments, annotation filtering, adding more tests
- Merge remote-tracking branch 'vicente/JDK-8354556' into JDK-8354556
- Improving the behavior of the PrintingProcessor.
- First support for runtime visible and invisible type annotations in CreateSymbols.
- Merge branch 'master' into JDK-8354556
Changes: https://git.openjdk.org/jdk/pull/25232/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25232&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8356894
Stats: 543 lines in 12 files changed: 512 ins; 14 del; 17 mod
Patch: https://git.openjdk.org/jdk/pull/25232.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/25232/head:pull/25232
PR: https://git.openjdk.org/jdk/pull/25232
More information about the compiler-dev
mailing list