group.addPosition(astRewrite.track(argType));
group.addPosition(astRewrite.track(argType), false);
		public ITrackedNodePosition rewriteAST(CompilationUnitRewrite cuRewrite, List textEditGroups, List positionGroups) throws CoreException {			InferTypeArgumentsTCModel model= new InferTypeArgumentsTCModel();			InferTypeArgumentsConstraintCreator creator= new InferTypeArgumentsConstraintCreator(model, true);						CompilationUnit root= cuRewrite.getRoot();			root.accept(creator);						InferTypeArgumentsConstraintsSolver solver= new InferTypeArgumentsConstraintsSolver(model);			InferTypeArgumentsUpdate update= solver.solveConstraints(new NullProgressMonitor());			solver= null; //free caches						ASTNode[] nodes= InferTypeArgumentsRefactoring.inferArguments(fTypes, update, model, cuRewrite);			if (nodes.length == 0)				return null;						ASTRewrite astRewrite= cuRewrite.getASTRewrite();			for (int i= 0; i < nodes.length; i++) {				if (nodes[i] instanceof ParameterizedType) {					ParameterizedType type= (ParameterizedType)nodes[0];					List args= (List)type.getStructuralProperty(ParameterizedType.TYPE_ARGUMENTS_PROPERTY);					int j= 0;					for (Iterator iter= args.iterator(); iter.hasNext();) {						PositionGroup group= new PositionGroup("G" + i + "_" + j); //$NON-NLS-1$ //$NON-NLS-2$						Type argType= (Type)iter.next();						if (positionGroups.isEmpty()) {							group.addFirstPosition(astRewrite.track(argType));						} else {							group.addPosition(astRewrite.track(argType));						}						if (argType.isWildcardType()) {							group.addProposal("?", "?");  //$NON-NLS-1$//$NON-NLS-2$							group.addProposal("Object", "Object");  //$NON-NLS-1$//$NON-NLS-2$						}						positionGroups.add(group);						j++;					}				}			}			return astRewrite.track(nodes[0]);		}