Please review a change that brings the implementation of 
`DocTrees.getElement(DocTreePath)` in agreement with `javax.lang.model` 
behavior by returning `null` for `DocTree` instances referring to a primitive 
or array type. Additionally, this adds some missing functionality to the 
implementation of the related `DocTrees.getType(DocTreePath)` method and 
improves test coverage for both methods. 

Internally, the member lookup part in method `JavacTrees.attributeDocReference` 
is split into a separate `resolveMember` method that can also be used by 
`getType`. 

We also improve attribution of references with explicit module name by 
attempting to attribute the referenced type and checking whether the module 
matches the name in the reference afterwards. This allows us to support 
parameterized types in references with explicit module id. 

In `test/langtools/tools/javac/doctree/ReferenceTest.java` we add some missing 
test coverage such as for type parameter references, and add tests for 
`DocTrees.getType(DocTreePath)` to the existing tests for 
`DocTrees.getElement(DocTreePath)`. The former was previously ony covered in 
javadoc tests.

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

Commit messages:
 - 8284315: DocTrees.getElement is inconsistent with Elements.getTypeElement

Changes: https://git.openjdk.org/jdk/pull/29547/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29547&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8284315
  Stats: 238 lines in 10 files changed: 129 ins; 53 del; 56 mod
  Patch: https://git.openjdk.org/jdk/pull/29547.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29547/head:pull/29547

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

Reply via email to