On Thu, 5 May 2022 00:18:56 GMT, Jonathan Gibbons <j...@openjdk.org> wrote:

> Please review some cleanup updates to address issues reported by an IDE.
> 
> The seeds for the change were a series of redundant casts, that have now all 
> been removed.  Various other warnings and suggestions were made by the IDE 
> for the affected files. There were a number of places with redundant type 
> arguments, for which the general fix was in favor of using `var` instead of 
> `<>`.
> 
> Some `switch` statements were converted to the enhanced `switch` form, which 
> also revealed a couple of places where `RECORD` should have been added 
> alongside `ENUM`.

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java
 line 297:

> 295:         VisibleMemberTable vmt = 
> configuration.getVisibleMemberTable(enclosing);
> 296:         // Check whether there is any implementation or overridden info 
> to be
> 297:         // printed. If not overridden or implementation info needs to be

Although awkward, it was correct before the change. Consider rewriting for 
clarity or deleting it. The code is pretty self-descriptive, if you ask me.

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/MetaKeywords.java
 line 81:

> 79:             
> results.addAll(getMemberKeywords(utils.getMethods(typeElement)));
> 80:         }
> 81:         results.trimToSize();

I wonder if this method will look better this way:

    public List<String> getMetaKeywords(TypeElement typeElement) {
        var results = new ArrayList<String>();
        ...
        results.trimToSize();
        return results;
    }

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/MetaKeywords.java
 line 125:

> 123:      */
> 124:     public List<String> getOverviewMetaKeywords(String title, String 
> docTitle) {
> 125:         List<String> result = new ArrayList<>(1);

Consider using `var` similarly to my suggestion above. Alternatively, we can 
use two calls to `List.of(e)` and one call to `List.of()`.

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/MetaKeywords.java
 line 156:

> 154:             }
> 155:         }
> 156:         results.trimToSize();

Same suggestion for `var` as above.

src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java line 
273:

> 271:      *   - is specified on the command line --module
> 272:      *   - is derived from the module graph, that is, by expanding the
> 273:      *     'requires' directive, based on --expand-requires

Thanks for using these clarifying quotes!

src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java line 
1063:

> 1061:                 if (enclosing != null) {
> 1062:                     return switch (enclosing.getKind()) {
> 1063:                         case CLASS, ENUM, RECORD, INTERFACE, 
> ANNOTATION_TYPE -> visit(enclosing);

Whoa! `RECORD` was missing. Does it make sense to accompany this PR with a 
small test that crashes javadoc with a type nested in a non-included record?

src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java line 
1206:

> 1204:             AccessKind accessValue = null;
> 1205:             for (ElementKind kind : ALLOWED_KINDS) {
> 1206:                 accessValue = switch (kind) {

It feels awkward when adjacent `switch` statements use different formatting.

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

PR: https://git.openjdk.java.net/jdk/pull/8543

Reply via email to