On Tue, 7 Mar 2023 23:25:58 GMT, Jonathan Gibbons <[email protected]> wrote:
>> Please review this explorative refactoring for VisibleMemberTable (VMT).
>>
>> This is the first round of refactoring for VMT. This round is about *method
>> members*: declared (overriding and not) and inherited.
>>
>> During this work I gained some insight into internal workings of VMT, fixed
>> what was feasible and left TODOs and FIXMEs for everything else. Leaving
>> those comments might look untidy, but leaving them out is wasteful: they
>> clearly mark issues that should be revisited in upcoming rounds of
>> refactoring.
>>
>> As I see it today, the main issue with VMT is that implements complex and
>> error-prone computations from Java Language Specification (JLS) by hand. For
>> example, VMT interprets JLS rules for relations such as _inherits_,
>> _overrides_ and _hides_. As one would imagine, sometimes VMT does it
>> incorrectly. It would be better to eventually re-implement VMT using
>> `javax.lang.model` as much as possible. Unlike that of `jdk.javadoc`, the
>> day job of `javax.lang.model` is to provide JLS services.
>
> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java
> line 307:
>
>> 305: Content dl) {
>> 306: Utils utils = writer.utils;
>> 307: if (writer.options.noComment()) {
>
> I presume that `static` methods are filtered beforehand
Correct; that is ensured by this method's sole call site:
HtmlDocletWriter.addMethodInfo
> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java
> line 287:
>
>> 285: * appeared in JDK 8.
>> 286: */
>> 287: public boolean isPackagePrivate(Element e) {
>
> Maybe change the method name, in line with the comment?
I would refrain from doing it in the context of this PR.
-------------
PR: https://git.openjdk.org/jdk/pull/12887