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

Reply via email to