On Mon, 11 Mar 2024 06:35:27 GMT, Guoxiong Li <g...@openjdk.org> wrote:
>> Please review this patch that fixes the issue where type annotations on >> primitive types are not linked. >> >> Tested with file >> https://cr.openjdk.org/~liach/8325433-arrayanno/ArrayAnno.java >> >> import java.lang.annotation.*; >> >> public class ArrayAnno { >> @Retention(RetentionPolicy.RUNTIME) >> @Target(ElementType.TYPE_USE) >> @Documented >> public @interface Anno { int value(); } >> >> public void method(@Anno(1) int @Anno(2) [] @Anno(3) [] arg) {} >> public void method(@Anno(1) String @Anno(2) [] @Anno(3) [] arg) {} >> } >> >> JDK 21: https://cr.openjdk.org/~liach/8325433-arrayanno/old/ArrayAnno.html >> This patch: >> https://cr.openjdk.org/~liach/8325433-arrayanno/new/ArrayAnno.html >> >> Note that a bug within javac causes the annotations to become `@Anno(1) >> String @Anno(3) [] @Anno(2) []` in the output files; this bug also affects >> output class files so I assume this is a bug within javac's tree building. >> (Intersting, the buggy javadoc output was copied wholesale in the original >> `TestTypeAnnotations` output for `array2Deep` cases, but no one paid >> attention to it) > > test/langtools/jdk/javadoc/doclet/testTypeAnnotations/typeannos/Fields.java > line 72: > >> 70: >> 71: public final @FldA int primitive = 0; >> 72: public final @FldA int @FldB [] primitiveArray1Deep = null; > > These two fields have not been verified? I shall remove these fields; they serve no real purpose here indeed. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/18179#discussion_r1519693430