processAnnotationPropertyValue(info, array[i]).get(0));
}
return toReturn;
} else if (value instanceof AnnotationBinding) {
AnnotationBinding annotationBinding = (AnnotationBinding) value;
ReferenceBinding annotationType = annotationBinding.getAnnotationType();
JInterfaceType type = (JInterfaceType) typeMap.tryGet(annotationType);
JAnnotation toReturn;
if (type != null) {
toReturn = new JAnnotation(info, type);
} else {
JInterfaceType external = getOrCreateExternalType(info,
annotationType.compoundName);
toReturn = new JAnnotation(info, external);
}
// Load the properties for the annotation value
processAnnotationProperties(info, toReturn,
annotationBinding.getElementValuePairs());
return Lists.<JAnnotationArgument> create(toReturn);
} else if (value instanceof FieldBinding) {
FieldBinding fieldBinding = (FieldBinding) value;
assert fieldBinding.constant() != null : "Expecting constant-valued field";