@Override public void visitAnnotation(JCAnnotation node) {
Annotation a = new Annotation();
a.rawAnnotationTypeReference(toTree(node.getAnnotationType(), FlagKey.TYPE_REFERENCE));
for (JCExpression elem : node.getArguments()) {
AnnotationElement e = new AnnotationElement();
if (elem instanceof JCAssign) {
JCExpression rawName = ((JCAssign) elem).getVariable();
if (rawName instanceof JCIdent) e.astName(setPos(rawName, new Identifier().astValue(((JCIdent)rawName).getName().toString())));
elem = ((JCAssign) elem).getExpression();
}
e.rawValue(toTree(elem));
a.astElements().addToEnd(e);
}
set(node, a);
}