diff options
author | Jeff Sharkey <jsharkey@android.com> | 2017-08-08 17:02:43 -0600 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2017-08-09 09:08:53 -0600 |
commit | a45f9a931b1dce93d69d44cd3be80f7eecab8648 (patch) | |
tree | ba83a970ba1810565bafb5e5fcb9c07f12590b56 | |
parent | 702a04cb1dcb722428ef5286f6c3f70d0fbf01cd (diff) | |
download | platform_external_doclava-a45f9a931b1dce93d69d44cd3be80f7eecab8648.tar.gz platform_external_doclava-a45f9a931b1dce93d69d44cd3be80f7eecab8648.tar.bz2 platform_external_doclava-a45f9a931b1dce93d69d44cd3be80f7eecab8648.zip |
Fix handling of @removed APIs.
The @removed docs tag means that a particular API should be considered
as removed from the API surface area that it otherwise would have been
exposed through.
This set of CLs is fixing a bug where we @removed had been treated as
always removing from the public API.
Bug: 62341924
Test: make -j32 update-api
Change-Id: Iee6199eb3da46d5068a06c69d423fb2019fdc8df
-rw-r--r-- | src/com/google/doclava/ClassInfo.java | 3 | ||||
-rw-r--r-- | src/com/google/doclava/MemberInfo.java | 8 | ||||
-rw-r--r-- | src/com/google/doclava/Stubs.java | 12 |
3 files changed, 8 insertions, 15 deletions
diff --git a/src/com/google/doclava/ClassInfo.java b/src/com/google/doclava/ClassInfo.java index b152508..af5286d 100644 --- a/src/com/google/doclava/ClassInfo.java +++ b/src/com/google/doclava/ClassInfo.java @@ -1510,9 +1510,6 @@ public class ClassInfo extends DocInfo implements ContainerInfo, Comparable, Sco public boolean isRemovedImpl() { ClassInfo cl = this; while (cl != null) { - if (cl.hasShowAnnotation()) { - return false; - } PackageInfo pkg = cl.containingPackage(); if (pkg != null && pkg.hasRemovedComment()) { return true; diff --git a/src/com/google/doclava/MemberInfo.java b/src/com/google/doclava/MemberInfo.java index 8c88648..8e7863e 100644 --- a/src/com/google/doclava/MemberInfo.java +++ b/src/com/google/doclava/MemberInfo.java @@ -53,14 +53,6 @@ public abstract class MemberInfo extends DocInfo implements Comparable, Scoped { } @Override - public boolean isRemoved() { - if (mShowAnnotations.size() > 0) { - return false; - } - return super.isRemoved(); - } - - @Override public boolean isHiddenOrRemoved() { return isHidden() || isRemoved(); } diff --git a/src/com/google/doclava/Stubs.java b/src/com/google/doclava/Stubs.java index 479b5ae..4dc859d 100644 --- a/src/com/google/doclava/Stubs.java +++ b/src/com/google/doclava/Stubs.java @@ -1230,14 +1230,16 @@ public class Stubs { ClassInfo clazz = member.containingClass(); boolean visible = member.isPublic() || member.isProtected(); + boolean hidden = member.isHidden(); boolean removed = member.isRemoved(); while (clazz != null) { visible &= clazz.isPublic() || clazz.isProtected(); + hidden |= clazz.isHidden(); removed |= clazz.isRemoved(); clazz = clazz.containingClass(); } - if (visible && removed) { + if (visible && !hidden && removed) { if (member instanceof MethodInfo) { final MethodInfo method = (MethodInfo) member; return (method.findOverriddenMethod(method.name(), method.signature()) == null); @@ -1257,15 +1259,17 @@ public class Stubs { boolean visible = member.isPublic() || member.isProtected(); boolean hasShowAnnotation = member.hasShowAnnotation(); - boolean hiddenOrRemoved = member.isHiddenOrRemoved(); + boolean hidden = member.isHidden(); + boolean removed = member.isRemoved(); while (clazz != null) { visible &= clazz.isPublic() || clazz.isProtected(); hasShowAnnotation |= clazz.hasShowAnnotation(); - hiddenOrRemoved |= clazz.isHiddenOrRemoved(); + hidden |= clazz.isHidden(); + removed |= clazz.isRemoved(); clazz = clazz.containingClass(); } - if (visible && hasShowAnnotation && !hiddenOrRemoved) { + if (visible && hasShowAnnotation && !hidden && !removed) { if (member instanceof MethodInfo) { final MethodInfo method = (MethodInfo) member; return (method.findOverriddenMethod(method.name(), method.signature()) == null); |