/** @apilevel low-level */
 @SuppressWarnings({"unchecked", "cast"})
 public ArrayTypeAccess fullCopy() {
   ArrayTypeAccess res = (ArrayTypeAccess) copy();
   for (int i = 0; i < getNumChildNoTransform(); i++) {
     ASTNode node = getChildNoTransform(i);
     if (node != null) node = node.fullCopy();
     res.setChild(node, i);
   }
   return res;
 }
 /** @apilevel internal */
 @SuppressWarnings({"unchecked", "cast"})
 public ArrayTypeAccess copy() {
   try {
     ArrayTypeAccess node = (ArrayTypeAccess) clone();
     if (children != null) node.children = (ASTNode[]) children.clone();
     return node;
   } catch (CloneNotSupportedException e) {
   }
   System.err.println("Error: Could not clone node of type " + getClass().getName() + "!");
   return null;
 }
 /** @apilevel internal */
 @SuppressWarnings({"unchecked", "cast"})
 public ArrayTypeAccess clone() throws CloneNotSupportedException {
   ArrayTypeAccess node = (ArrayTypeAccess) super.clone();
   node.getPackage_computed = false;
   node.getPackage_value = null;
   node.getID_computed = false;
   node.getID_value = null;
   node.decl_computed = false;
   node.decl_value = null;
   node.in$Circle(false);
   node.is$Final(false);
   return node;
 }
 public void typeCheck() {
   super.typeCheck();
   if (!getExpr().type().unaryNumericPromotion().isInt())
     error(getExpr().type().typeName() + " is not int after unary numeric promotion");
 }
 public void flushCollectionCache() {
   super.flushCollectionCache();
 }
 public void flushCache() {
   super.flushCache();
 }