mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 23:34:52 +02:00
8220217: Javadoc missing link to member method
Reviewed-by: jjg
This commit is contained in:
parent
c1474ca64b
commit
bb09c0c1d8
7 changed files with 98 additions and 15 deletions
|
@ -25,7 +25,7 @@
|
|||
|
||||
/**
|
||||
* Doclets provide the user-selectable backends for processing the
|
||||
* documentation comnments in Java source code.
|
||||
* documentation comments in Java source code.
|
||||
*
|
||||
* <p>Doclets are implementations of the {@link jdk.javadoc.doclet Doclet API}.</p>
|
||||
*
|
||||
|
|
|
@ -320,7 +320,7 @@ public abstract class MemberSummaryBuilder extends AbstractMemberBuilder {
|
|||
//necessary.
|
||||
DocFinder.Output inheritedDoc =
|
||||
DocFinder.search(configuration,
|
||||
new DocFinder.Input(utils, (ExecutableElement) member));
|
||||
new DocFinder.Input(utils, member));
|
||||
if (inheritedDoc.holder != null
|
||||
&& !utils.getFirstSentenceTrees(inheritedDoc.holder).isEmpty()) {
|
||||
// let the comment helper know of the overridden element
|
||||
|
@ -473,7 +473,7 @@ public abstract class MemberSummaryBuilder extends AbstractMemberBuilder {
|
|||
private void addSummaryFootNote(TypeElement inheritedClass, SortedSet<Element> inheritedMembers,
|
||||
Content linksTree, MemberSummaryWriter writer) {
|
||||
for (Element member : inheritedMembers) {
|
||||
TypeElement t = (utils.isPackagePrivate(inheritedClass) && !utils.isLinkable(inheritedClass))
|
||||
TypeElement t = utils.isUndocumentedEnclosure(inheritedClass)
|
||||
? typeElement : inheritedClass;
|
||||
writer.addInheritedMemberSummary(t, member, inheritedMembers.first() == member,
|
||||
inheritedMembers.last() == member, linksTree);
|
||||
|
|
|
@ -529,6 +529,10 @@ public class Utils {
|
|||
return true;
|
||||
}
|
||||
|
||||
public boolean isUndocumentedEnclosure(TypeElement enclosingTypeElement) {
|
||||
return isPackagePrivate(enclosingTypeElement) && !isLinkable(enclosingTypeElement);
|
||||
}
|
||||
|
||||
public boolean isError(TypeElement te) {
|
||||
if (isEnum(te) || isInterface(te) || isAnnotationType(te)) {
|
||||
return false;
|
||||
|
@ -1064,8 +1068,7 @@ public class Utils {
|
|||
|
||||
// Allow for the behavior that members of undocumented supertypes
|
||||
// may be included in documented types
|
||||
TypeElement enclElem = getEnclosingTypeElement(elem);
|
||||
if (typeElem != enclElem && isSubclassOf(typeElem, enclElem)) {
|
||||
if (isUndocumentedEnclosure(getEnclosingTypeElement(elem))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -209,7 +209,7 @@ public class VisibleMemberTable {
|
|||
public List<? extends Element> getVisibleMembers(Kind kind) {
|
||||
Predicate<Element> declaredAndLeafMembers = e -> {
|
||||
TypeElement encl = utils.getEnclosingTypeElement(e);
|
||||
return encl == te || isUndocumentedEnclosure(encl);
|
||||
return encl == te || utils.isUndocumentedEnclosure(encl);
|
||||
};
|
||||
return getVisibleMembers(kind, declaredAndLeafMembers);
|
||||
}
|
||||
|
@ -238,7 +238,8 @@ public class VisibleMemberTable {
|
|||
ensureInitialized();
|
||||
|
||||
OverridingMethodInfo found = overriddenMethodTable.get(e);
|
||||
if (found != null && (found.simpleOverride || isUndocumentedEnclosure(utils.getEnclosingTypeElement(e)))) {
|
||||
if (found != null
|
||||
&& (found.simpleOverride || utils.isUndocumentedEnclosure(utils.getEnclosingTypeElement(e)))) {
|
||||
return found.overrider;
|
||||
}
|
||||
return null;
|
||||
|
@ -347,10 +348,6 @@ public class VisibleMemberTable {
|
|||
return pm == null ? null : pm.setter;
|
||||
}
|
||||
|
||||
boolean isUndocumentedEnclosure(TypeElement encl) {
|
||||
return utils.isPackagePrivate(encl) && !utils.isLinkable(encl);
|
||||
}
|
||||
|
||||
private void computeParents() {
|
||||
for (TypeMirror intfType : te.getInterfaces()) {
|
||||
TypeElement intfc = utils.asTypeElement(intfType);
|
||||
|
@ -388,7 +385,7 @@ public class VisibleMemberTable {
|
|||
|
||||
private void computeLeafMembers(LocalMemberTable lmt, Kind kind) {
|
||||
List<Element> list = new ArrayList<>();
|
||||
if (isUndocumentedEnclosure(te)) {
|
||||
if (utils.isUndocumentedEnclosure(te)) {
|
||||
list.addAll(lmt.getOrderedMembers(kind));
|
||||
}
|
||||
parents.forEach(pvmt -> {
|
||||
|
@ -617,7 +614,7 @@ public class VisibleMemberTable {
|
|||
|
||||
// Disallow package-private super methods to leak in
|
||||
TypeElement encl = utils.getEnclosingTypeElement(inheritedMethod);
|
||||
if (isUndocumentedEnclosure(encl)) {
|
||||
if (utils.isUndocumentedEnclosure(encl)) {
|
||||
overriddenMethodTable.computeIfAbsent(lMethod,
|
||||
l -> new OverridingMethodInfo(inheritedMethod, false));
|
||||
return false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue