diff options
author | Sorin Basca <sorinbasca@google.com> | 2023-04-11 15:22:51 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-04-11 15:22:51 +0000 |
commit | e8dd41ab4b60b5120822cdb7eca10db4f1318e79 (patch) | |
tree | 7cd65b4903c5bac9a406f19eac9383683e78cf57 | |
parent | ea9007c59f07b421e98429f69b2e3fa4c75768fb (diff) | |
parent | d92bc18a2193845052785215bed46a7d382a4d2c (diff) | |
download | doclava-e8dd41ab4b60b5120822cdb7eca10db4f1318e79.tar.gz |
Merge "Fix AnnotatedTypeImpl#underlyingType to return the underlying type without annotations, instead of returning the same annotated type again" am: 34a3c520d8 am: b4eef84fa5 am: d92bc18a21
Original change: https://android-review.googlesource.com/c/platform/external/doclava/+/2523457
Change-Id: Ifb7d686d6230bf92d0138a78f3f6185310bf83ce
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | doclet_adapter/src/main/java/com/google/doclava/javadoc/AnnotatedTypeImpl.java | 8 | ||||
-rw-r--r-- | doclet_adapter/src/main/java/com/google/doclava/javadoc/TypeImpl.java | 6 |
2 files changed, 12 insertions, 2 deletions
diff --git a/doclet_adapter/src/main/java/com/google/doclava/javadoc/AnnotatedTypeImpl.java b/doclet_adapter/src/main/java/com/google/doclava/javadoc/AnnotatedTypeImpl.java index 17dc78a..436b1f8 100644 --- a/doclet_adapter/src/main/java/com/google/doclava/javadoc/AnnotatedTypeImpl.java +++ b/doclet_adapter/src/main/java/com/google/doclava/javadoc/AnnotatedTypeImpl.java @@ -29,6 +29,7 @@ import com.google.doclava.annotation.Unused; import com.google.doclava.annotation.Used; import com.sun.javadoc.AnnotatedType; import com.sun.javadoc.AnnotationDesc; +import com.sun.javadoc.AnnotationTypeDoc; import com.sun.javadoc.Type; import javax.lang.model.type.DeclaredType; @@ -70,8 +71,13 @@ class AnnotatedTypeImpl extends TypeImpl implements AnnotatedType { @Used(implemented = true) public Type underlyingType() { if (underlyingType == null) { - underlyingType = TypeImpl.create(declaredType, context); + underlyingType = TypeImpl.create(declaredType, context, /* underlyingType= */ true); } return underlyingType; } + + @Override + public AnnotatedType asAnnotatedType() { + return this; + } } diff --git a/doclet_adapter/src/main/java/com/google/doclava/javadoc/TypeImpl.java b/doclet_adapter/src/main/java/com/google/doclava/javadoc/TypeImpl.java index 44a37a6..a7cf76b 100644 --- a/doclet_adapter/src/main/java/com/google/doclava/javadoc/TypeImpl.java +++ b/doclet_adapter/src/main/java/com/google/doclava/javadoc/TypeImpl.java @@ -54,6 +54,10 @@ abstract class TypeImpl implements Type { } protected static Type create(TypeMirror m, Context context) { + return create(m, context, /* underlyingType= */ false); + } + + protected static Type create(TypeMirror m, Context context, boolean underlyingType) { return switch (m.getKind()) { // primitive types case BOOLEAN -> PrimitiveTypeImpl.BOOLEAN; @@ -84,7 +88,7 @@ abstract class TypeImpl implements Type { var dt = (DeclaredType) m; // Order matters! AnnotatedTypeImpl goes first as it has an "underlying type" // which will be constructed by this method in create() routine. - if (!dt.getAnnotationMirrors().isEmpty()) { + if (!underlyingType && !dt.getAnnotationMirrors().isEmpty()) { yield AnnotatedTypeImpl.create(dt, context); } if (!dt.getTypeArguments().isEmpty()) { |