Low priority suggestion:
The following in JCNewArray is mildly icky.
public List<JCExpression> dims;
// type annotations on dimensions
public List<List<JCAnnotation>> dimAnnotations;
Would it make sense to introduce JCAnnotatedExpression so that that
reduces to
public List<JCAnnotatedExpression> dims;
-- Jon