2089 } |
2089 } |
2090 |
2090 |
2091 @Override |
2091 @Override |
2092 public Type visitAnnotatedType(AnnotatedType t, Boolean recurse) { |
2092 public Type visitAnnotatedType(AnnotatedType t, Boolean recurse) { |
2093 Type erased = erasure(t.underlyingType, recurse); |
2093 Type erased = erasure(t.underlyingType, recurse); |
2094 if (erased.getKind() == TypeKind.ANNOTATED) { |
2094 if (erased.isAnnotated()) { |
2095 // This can only happen when the underlying type is a |
2095 // This can only happen when the underlying type is a |
2096 // type variable and the upper bound of it is annotated. |
2096 // type variable and the upper bound of it is annotated. |
2097 // The annotation on the type variable overrides the one |
2097 // The annotation on the type variable overrides the one |
2098 // on the bound. |
2098 // on the bound. |
2099 erased = ((AnnotatedType)erased).underlyingType; |
2099 erased = ((AnnotatedType)erased).underlyingType; |