private static boolean isDeclarationTarget(AnnotationDesc targetAnno) {
        // The error recovery steps here are analogous to TypeAnnotations
        ElementValuePair[] elems = targetAnno.elementValues();
        if (elems == null
            || elems.length != 1
            || !"value".equals(elems[0].element().name())
            || !(elems[0].value().value() instanceof AnnotationValue[]))
            return true;    // error recovery

        AnnotationValue[] values = (AnnotationValue[])elems[0].value().value();
        for (int i = 0; i < values.length; i++) {
            Object value = values[i].value();
            if (!(value instanceof FieldDoc))
                return true; // error recovery

            FieldDoc eValue = (FieldDoc)value;
            if (Util.isJava5DeclarationElementType(eValue)) {
                return true;
            }
        }

        return false;
    }