if(val!=null) {
if(val!=null && !(val instanceof JNewArrayExpression)) {
    public Object visitBlockStatement(JBlock self,				      JavaStyleComment[] comments) {	if(parent==null) {	    parent=self;	    varDefs=new LinkedList();	    newArrays=new LinkedList();	}	//LinkedList saveDefs=varDefs;	int size=self.size();	for (int i=0;i<size;i++) {	    boolean neg=false;	    //if(i<0)	    //continue;	    JStatement oldBody = (JStatement)self.getStatement(i);	    Object newBody = oldBody.accept(this);	    if (!(newBody instanceof JStatement))		continue;	    //System.out.println("VarDeclRaiser:"+newBody);	    if(newBody instanceof JVariableDeclarationStatement) {		self.removeStatement(i);		varDefs.add(newBody);		JVariableDefinition[] vars=((JVariableDeclarationStatement)newBody).getVars();		for(int j=vars.length-1;j>=0;j--) {		    JVariableDefinition def=(JVariableDefinition)vars[j];		    JExpression val=def.getValue();		    if(val!=null) {			def.setValue(null);			TokenReference ref=((JVariableDeclarationStatement)newBody).getTokenReference();			JStatement state=new JExpressionStatement(ref,new JAssignmentExpression(ref,new JLocalVariableExpression(ref,def),val),null);			self.addStatement(i,(JStatement)state);			//i++;			size++;		    }		}		neg=true;		size--;	    } else if(newBody instanceof JExpressionStatement) {		JExpressionStatement exp=(JExpressionStatement)newBody;		if(exp.getExpression() instanceof JAssignmentExpression) {		    JAssignmentExpression assign=(JAssignmentExpression)exp.getExpression();		    if((assign.getRight() instanceof JNewArrayExpression)&&(assign.getLeft() instanceof JLocalVariableExpression)) {			JNewArrayExpression newArray=(JNewArrayExpression)assign.getRight();			//Make sure all dimensions are IntLiterals			JExpression[] dims=newArray.getDims();			boolean ok=true;			for(int j=0;j<dims.length;j++)			    if(!(dims[j] instanceof JIntLiteral))				ok=false;			if(ok) {			    newArrays.add(newBody);			    self.removeStatement(i);			    //i--;			    neg=true;			    size--;			}		    }		}	    } else if(newBody instanceof JExpressionListStatement) {		JExpression[] exps=((JExpressionListStatement)newBody).getExpressions();		for(int k=0;k<exps.length;k++)		    if(exps[k] instanceof JAssignmentExpression) {			JAssignmentExpression assign=(JAssignmentExpression)exps[k];			if((assign.getRight() instanceof JNewArrayExpression)&&(assign.getLeft() instanceof JLocalVariableExpression)) {			    JNewArrayExpression newArray=(JNewArrayExpression)assign.getRight();			    //Make sure all dimensions are IntLiterals			    JExpression[] dims=newArray.getDims();			    boolean ok=true;			    for(int j=0;j<dims.length;j++)				if(!(dims[j] instanceof JIntLiteral))				    ok=false;			    if(ok) {				newArrays.add(newBody);				self.removeStatement(i);				//i--;				neg=true;				size--;			    }			}		    }	    } else if (newBody!=null && newBody!=oldBody) {		self.setStatement(i,(JStatement)newBody);	    }	    if(neg)		i--;	}	if(parent==self) {	    for(int i=newArrays.size()-1;i>=0;i--) {		JStatement newState=(JStatement)newArrays.get(i);		self.addStatementFirst(newState);	    }	    Hashtable visitedVars=new Hashtable();	    for(int i=varDefs.size()-1;i>=0;i--) {		JVariableDeclarationStatement varDec=(JVariableDeclarationStatement)varDefs.get(i);		self.addStatementFirst(varDec);		JVariableDefinition[] varArray=varDec.getVars();		LinkedList newVars=new LinkedList();		for(int j=0;j<varArray.length;j++) {		    JLocalVariable var=(JLocalVariable)varArray[j];		    if(!visitedVars.containsKey(var.getIdent())) {			visitedVars.put(var.getIdent(),Boolean.TRUE);			newVars.add(var);		    } else {			var.setIdent(var.getIdent()+"__conflict__"+conflict++);			visitedVars.put(var.getIdent(),Boolean.TRUE);			//System.err.println("Conflict:"+var.getIdent());			newVars.add(var);		    }		}		varDec.setVars((JVariableDefinition[])newVars.toArray(new JVariableDefinition[0]));	    }	    parent=null;	}	//varDefs=saveDefs;	visitComments(comments);	return self;    }