On Wed, 26 Jan 2022 16:20:30 GMT, Pavel Rappo <pra...@openjdk.org> wrote:
> Explorative refactoring performed while looking into multiple `@inheritDoc` > issues. The easiest way to review it is to, probably, go commit by commit; > they are quite focused and commented. Not only the branch as a whole, but all > the constituent commits should pass tests and leave JDK API Documentation > unchanged. Second commit. 83040e5 Utils. It's OK as far as it goes, but ... the following may be out-of-scope for what you are doing, but I'll make the comments anyway, perhaps for later attention. Generally, the code from 162:206 reflects the historical precedent of using `Utils` as a dumping ground for stuff that didn't have a better place to go. In the old world, I'm guessing the old tool/doclet used direct access to the javac internal `Symtab` class, and the code here reflects the desire not to do that. (Which is good.) A different presentation of this code would be to have a new class, possibly called `Symtab` which contains fields and access methods for the different types ... as compared to the `HashMap` here. That being said, we'd then have to find a way to get access to the `Symtab` class, perhaps still via `Utils`, so it may be a toss-up whether it is worth it or not. 3rd commit. Fix equality check in Utils.getAllInterfaces I'm guessing the old code was OK, but the new code is more robust. src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java line 168: > 166: var typeElement = elementUtils.getTypeElement(s); > 167: return typeElement == null ? null : typeElement.asType(); > 168: }); had to think about this one, but I guess OK. The difference is that the old code never put `null` in the symtab; the new code does. src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java line 529: > 527: Map<ExecutableElement, List<ExecutableElement>> > overriddenByTable = new HashMap<>(); > 528: for (VisibleMemberTable pvmt : parents) { > 529: // Merge the lineage overrides into local table not sure what "lineage" means! ------------- PR: https://git.openjdk.java.net/jdk/pull/7233