RFR: 8372055: Fragment link tag does not work in package info

Chen Liang liach at openjdk.org
Tue Nov 25 17:34:40 UTC 2025


On Tue, 18 Nov 2025 13:28:37 GMT, Hannes Wallnöfer <hannesw at openjdk.org> wrote:

> Please review a change to make unqualified anchor references such as `{@link ##anchor link}` work everywhere. Previously, such links only worked in class pages. The fix consists in attributing the correct Element in `JavacTrees::attributeDocReference` for references declared in API elements, and setting it to `null` for references defined in `doc-files` to make them work as local links.
> 
> Because of unattributed `doc-files` references, we also have to exclude such links from the reference check in DocLint. This is fine because local references always have a target element, and we do not check the anchor anyway.

The tests look very good.

src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java line 422:

> 420:                     case COMPILATION_UNIT ->
> 421:                         // Treat unqualified reference in legacy package.html as package reference.
> 422:                         // Unqualified references in doc-fiiles only need to work locally, so null is fine.

Suggestion:

                        // Unqualified references in doc-files only need to work locally, so null is fine.

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/taglets/LinkTaglet.java line 166:

> 164:                 // Unqualified local anchor link
> 165:                 return htmlWriter.links.createLink(HtmlId.of(refFragment), labelContent);
> 166:             }

Why do we need a new if here? Does this not fall into the `else if (refFragment == null) {` block somehow?

-------------

PR Review: https://git.openjdk.org/jdk/pull/28372#pullrequestreview-3506058261
PR Review Comment: https://git.openjdk.org/jdk/pull/28372#discussion_r2560783266
PR Review Comment: https://git.openjdk.org/jdk/pull/28372#discussion_r2560805106


More information about the compiler-dev mailing list