diff options
author | Sorin Basca <sorinbasca@google.com> | 2023-04-11 13:51:47 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-04-11 13:51:47 +0000 |
commit | 34a3c520d896e97fbfa0c458f4c6f860f5080f7d (patch) | |
tree | 4a87d5096dc4cdc824f389110d40c2dd79e6b1b2 | |
parent | a59df156720fcde446a20a19d026c0a133e79994 (diff) | |
parent | 2adb8c12e1dce47d3e855b0db8c9352fc4f6239c (diff) | |
download | doclava-34a3c520d896e97fbfa0c458f4c6f860f5080f7d.tar.gz |
Merge "Fix AnnotatedTypeImpl#underlyingType to return the underlying type without annotations, instead of returning the same annotated type again"android-u-beta-1-gpl
-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()) { |