> 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

Reply via email to