for (Iterator cvIter= cuUpdate.getDeclarations().iterator(); cvIter.hasNext();) { ConstraintVariable2 cv= (ConstraintVariable2) cvIter.next(); rewriteConstraintVariable(cv, rewrite); }  for (Iterator castsIter= cuUpdate.getCastsToRemove().iterator(); castsIter.hasNext();) { CastVariable2 castCv= (CastVariable2) castsIter.next(); rewriteCastVariable(castCv, rewrite); }
rewriteDeclarations(cuUpdate, rewrite, fTCModel, fLeaveUnconstrainedRaw);
	private void rewriteDeclarations(InferTypeArgumentsUpdate update, IProgressMonitor pm) throws CoreException {		HashMap/*<ICompilationUnit, CuUpdate>*/ updates= update.getUpdates();				Set entrySet= updates.entrySet();		pm.beginTask("", entrySet.size()); //$NON-NLS-1$		pm.setTaskName(RefactoringCoreMessages.InferTypeArgumentsRefactoring_creatingChanges); 		for (Iterator iter= entrySet.iterator(); iter.hasNext();) {			if (pm.isCanceled())				throw new OperationCanceledException();						Map.Entry entry= (Map.Entry) iter.next();			ICompilationUnit cu= (ICompilationUnit) entry.getKey();			pm.worked(1);			pm.subTask(cu.getElementName());			CompilationUnitRewrite rewrite= new CompilationUnitRewrite(cu);			rewrite.setResolveBindings(false);			CuUpdate cuUpdate= (CuUpdate) entry.getValue();						for (Iterator cvIter= cuUpdate.getDeclarations().iterator(); cvIter.hasNext();) {				ConstraintVariable2 cv= (ConstraintVariable2) cvIter.next();				rewriteConstraintVariable(cv, rewrite);			}						for (Iterator castsIter= cuUpdate.getCastsToRemove().iterator(); castsIter.hasNext();) {				CastVariable2 castCv= (CastVariable2) castsIter.next();				rewriteCastVariable(castCv, rewrite);			}						CompilationUnitChange change= rewrite.createChange();			if (change != null) {				fChangeManager.manage(cu, change);			}		}			}