RFR: 8304146: Refactor VisibleMemberTable (LocalMemberTable)
    Jonathan Gibbons 
    jjg at openjdk.org
       
    Wed Mar 15 17:59:27 UTC 2023
    
    
  
On Wed, 15 Mar 2023 15:48:37 GMT, Pavel Rappo <prappo at openjdk.org> wrote:
> Please review a change to clean up and simplify LocalMemberTable; a container to cache, classify, and provide efficient lookup for the return value of `TypeElement.getEnclosedElements()`.
> 
> While the change primarily targets internals of LocalMemberTable, it also affects its clients: in particular, code that handles JavaFX documentation. That code does not seem to be tested well (I filed a bug for that: JDK-8304170). To make sure I haven't broken anything, aside from usual testing, I also cloned [OpenJFX](https://github.com/openjdk/jfx) and built its documentation with javadoc before and after the change. Documentation bundles were identical.
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java line 903:
> 901:         }
> 902: 
> 903:         List<Element> getMembers(Name simplename, Kind kind) {
Suggest: `simpleName`
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java line 907:
> 905:                 @Override
> 906:                 public String visitExecutable(ExecutableElement e, Void aVoid) {
> 907:                     return e.getSimpleName() + ":" + e.getParameters().size();
That was bizarre.
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java line 907:
> 905:         }
> 906: 
> 907:         <T extends Element> List<T> getMembers(Name simplename, Kind kind, Class<T> clazz) {
suggest: `simpleName`
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java line 914:
> 912:         }
> 913: 
> 914:         List<ExecutableElement> getPropertyMethods(Name simplename) {
suggest `simpleName`
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java line 982:
> 980:             VariableElement field = flist.isEmpty() ? null : flist.get(0);
> 981: 
> 982:             // TODO: this code does not seem to be covered by tests well
Suggest: link to this TODO in recent new JBS entry.
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java line 1004:
> 1002: 
> 1003:             var setter = lmt.getPropertyMethods(utils.elementUtils.getName(pUtils.getSetName(propertyMethod))).stream()
> 1004:                     // TODO: number of parameters a setter take is not tested
Suggest: link to this TODO in recent new JBS entry.
-------------
PR: https://git.openjdk.org/jdk/pull/13044
    
    
More information about the javadoc-dev
mailing list