if (moveArrayInitializers==FieldInitMover.MOVE_ARRAY_INITIALIZERS && expr instanceof JArrayInitializer) {
if (!(expr instanceof JArrayInitializer) || moveArrayInitializers==FieldInitMover.MOVE_ARRAY_INITIALIZERS) {
	public Object visitFieldDeclaration(JFieldDeclaration self,					    int modifiers,					    CType type,					    String ident,					    JExpression expr)	{	    //System.out.println("!!Visiting field: " + self);	    // if this field declaration has an initial value,	    // make an assignment expression to stick in the	    // init function	    //System.out.println("Initial expression for field: " + expr);	    if (expr != null &&		(moveArrayInitializers!=FieldInitMover.IGNORE_ARRAY_INITIALIZERS || !(expr instanceof JArrayInitializer))) {		// build up the this.field = initalValue expression						JThisExpression thisExpr = new JThisExpression (self.getTokenReference());		JFieldAccessExpression fieldExpr;		fieldExpr = new JFieldAccessExpression(self.getTokenReference(),						       thisExpr,						       ident);				JAssignmentExpression assignExpr;		assignExpr = new JAssignmentExpression(self.getTokenReference(),						       fieldExpr,						       expr);			    		JExpressionStatement assignStmt;		assignStmt = new JExpressionStatement(self.getTokenReference(),						      assignExpr,						      null);		// add the new statement to the list of statements we are going to		// add to the init function		assignmentStatements.add(assignStmt);				// only move if specified		if (moveArrayInitializers==FieldInitMover.MOVE_ARRAY_INITIALIZERS && expr instanceof JArrayInitializer) {		    // mutate the field so that it has no initializer expression		    self.getVariable().setExpression(null);		}	    }	    return self;	}