On Wed, 15 Mar 2023 18:46:17 GMT, Pavel Rappo <pra...@openjdk.org> wrote:

>> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java
>>  line 888:
>> 
>>> 886:             for (Kind kind : Kind.values()) {
>>> 887:                 orderedMembers.compute(kind, (k, v) -> v == null ? 
>>> List.of() : Collections.unmodifiableList(v));
>>> 888:                 namedMembers.compute(kind, (k, v) -> v == null ? 
>>> Map.of() : Collections.unmodifiableMap(v));
>> 
>> Can just use `replaceAll` than using a for loop
>
> There's a cost of changing that to this:
> 
>     // protect from unintended change
>     orderedMembers.replaceAll((k, l) -> Collections.unmodifiableList(l));
>     namedMembers.replaceAll((k, m) -> Collections.unmodifiableMap(m));
> 
> That cost is using default values for absent kinds:
> 
>     List<Element> getOrderedMembers(Kind kind) {
>         return orderedMembers.getOrDefault(kind, List.of());
>     }
> 
>     List<Element> getMembers(Name simpleName, Kind kind) {
>         return namedMembers.getOrDefault(kind, Map.of())
>             .getOrDefault(simpleName, List.of());
>     }
> 
> Or did you mean something else?

I don't mind either way; @jonathan-gibbons do you have a preference?

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

PR: https://git.openjdk.org/jdk/pull/13044

Reply via email to