summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSorin Basca <sorinbasca@google.com>2023-04-11 13:51:47 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2023-04-11 13:51:47 +0000
commit34a3c520d896e97fbfa0c458f4c6f860f5080f7d (patch)
tree4a87d5096dc4cdc824f389110d40c2dd79e6b1b2
parenta59df156720fcde446a20a19d026c0a133e79994 (diff)
parent2adb8c12e1dce47d3e855b0db8c9352fc4f6239c (diff)
downloaddoclava-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.java8
-rw-r--r--doclet_adapter/src/main/java/com/google/doclava/javadoc/TypeImpl.java6
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()) {