Skip to content

Commit

Permalink
8300204: Sealed-class hierarchy graph missing nodes
Browse files Browse the repository at this point in the history
Reviewed-by: jjg
  • Loading branch information
liach authored and jonathan-gibbons committed May 12, 2023
1 parent 38838b3 commit d8afc7b
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions make/jdk/src/classes/build/tools/taglet/SealedGraph.java
Expand Up @@ -265,16 +265,17 @@ private static List<TypeElement> permittedSubclasses(TypeElement node, Set<Strin
}

private static boolean isInPublicApi(TypeElement typeElement, Set<String> exports) {
return (exports.contains(packageName(typeElement.getQualifiedName().toString())) ||
exports.contains(packageName(typeElement.getSuperclass().toString()))) &&
typeElement.getModifiers().contains(Modifier.PUBLIC);
var packageName = packageName(typeElement);
return packageName.isPresent() && exports.contains(packageName.get()) &&
typeElement.getModifiers().contains(Modifier.PUBLIC);
}

private static String packageName(String name) {
int lastDot = name.lastIndexOf('.');
return lastDot < 0
? ""
: name.substring(0, lastDot);
private static Optional<String> packageName(TypeElement element) {
return switch (element.getNestingKind()) {
case TOP_LEVEL -> Optional.of(((PackageElement) element.getEnclosingElement()).getQualifiedName().toString());
case ANONYMOUS, LOCAL -> Optional.empty();
case MEMBER -> packageName((TypeElement) element.getEnclosingElement());
};
}
}
}

1 comment on commit d8afc7b

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.