RFR: 8300517: Refactor VisibleMemberTable (method members) [v4]
Pavel Rappo
prappo at openjdk.org
Mon Mar 13 18:13:23 UTC 2023
> 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.
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 54 additional commits since the last revision:
- Respond to feedback
Moves comment to the record declaration.
- Respond to feedback
Stores superclasses and parents in sets, not lists.
- Merge branch 'master' into 8300517
- Clarify some assertions
- Respond to feedback
- Remove trailing whitespace (to please jcheck)
- Comment method accessibility for inheritance
- Rename VisibleMemberTable.isInherited for clarity
It's about _access control_ and has nothing to do with inheritance.
- Add FIXMEs to VisibleMemberTable.computeVisibleMethods
- Comment VisibleMemberTable.computeVisibleMethods
- ... and 44 more: https://git.openjdk.org/jdk/compare/ce8596fc...42035af7
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/12887/files
- new: https://git.openjdk.org/jdk/pull/12887/files/c0dfb165..42035af7
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=12887&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=12887&range=02-03
Stats: 70310 lines in 851 files changed: 58770 ins; 4078 del; 7462 mod
Patch: https://git.openjdk.org/jdk/pull/12887.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12887/head:pull/12887
PR: https://git.openjdk.org/jdk/pull/12887
More information about the javadoc-dev
mailing list