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