On Wed, 14 May 2025 14:48:15 GMT, Jan Lahoda <jlah...@openjdk.org> wrote:
> 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 src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java line 1578: > 1576: Assert.check(sym.kind == MTH); > 1577: sym.flags_field |= RESTRICTED; > 1578: } else if (proxy.type.tsym == > syms.requiresIdentityType.tsym) { Suggestion: } else if (proxy.type.tsym == syms.requiresIdentityType.tsym) { ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/25232#discussion_r2090678802