On Sat, 3 Jun 2023 00:37:36 GMT, Jonathan Gibbons <j...@openjdk.org> wrote:
>> Pavel Rappo has updated the pull request with a new target base due to a >> merge or a rebase. The incremental webrev excludes the unrelated changes >> brought in by the merge/rebase. The pull request contains five additional >> commits since the last revision: >> >> - Merge branch 'master' into 8304135 >> - Extract getActualMethod >> - Impose (almost) legacy order on implemented methods >> >> The legacy order is generated by an application of >> Utils.overriddenMethod followed by application of >> Utils.addSuperInterfaces. >> - Fix errors reported by jcheck >> - Initial commit > > src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java > line 1015: > >> 1013: // will be computed once the complete sequence is >> available >> 1014: var simpleOverride = false; >> 1015: result = result.append(new >> OverrideData(toDeclaringType(s, > > `append` is *horrible* on `javac.util.List` > > Unless there is a string reason to be using it, you should probably be using > plain old collection Lists, like `ArrayList` or `List.of`. > > If you're using `javac.util.List` because you're calling javac internal > functionality that requires that kind of List, then your usage should be in > methods in `WorkArounds`, which is intended to the the only doclet class that > accesses javac internal methods and types. > > FYI, `javac.util.List` are immutable linked lists. New lists are created by > prepending new entries. They predate use of Collections lists, and > `java.util.List` was only retrofitted as a supertype later on in JDK 6 or 7. > `append` works by copying the entire list. Internally in `javac` > `ListBuffer` is used to create (temporary) mutable lists which are then made > immutable by calling `.toList()` Replied here https://github.com/openjdk/jdk/pull/14221#discussion_r1224059741 ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14221#discussion_r1224109990