fn reconcile_work_products<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
                                     work_products: Vec<SerializedWorkProduct>,
                                     clean_work_products: &FxHashSet<Arc<WorkProductId>>) {
    debug!("reconcile_work_products({:?})", work_products);
    for swp in work_products {
        if !clean_work_products.contains(&swp.id) {
            debug!("reconcile_work_products: dep-node for {:?} is dirty", swp);
            delete_dirty_work_product(tcx, swp);
        } else {
            let mut all_files_exist = true;
            for &(_, ref file_name) in swp.work_product.saved_files.iter() {
                let path = in_incr_comp_dir_sess(tcx.sess, file_name);
                if !path.exists() {
                    all_files_exist = false;

                    if tcx.sess.opts.debugging_opts.incremental_info {
                        println!("incremental: could not find file for up-to-date work product: {}",
                                 path.display());
                    }
                }
            }

            if all_files_exist {
                debug!("reconcile_work_products: all files for {:?} exist", swp);
                tcx.dep_graph.insert_previous_work_product(&swp.id, swp.work_product);
            } else {
                debug!("reconcile_work_products: some file for {:?} does not exist", swp);
                delete_dirty_work_product(tcx, swp);
            }
        }
    }
}
/// Go through the list of work-products produced in the previous run.
/// Delete any whose nodes have been found to be dirty or which are
/// otherwise no longer applicable.
Go through the list of work-products produced in the previous run.
Delete any whose nodes have been found to be dirty or which are
otherwise no longer applicable.
Go through the list of work - products produced in the previous run . Delete any whose nodes have been found to be dirty or which are otherwise no longer applicable .
fn reconcile_work_products<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
                                     work_products: Vec<SerializedWorkProduct>,
                                     clean_work_products: &FxHashSet<Arc<WorkProductId>>) {
    debug!("reconcile_work_products({:?})", work_products);
    for swp in work_products {
        if !clean_work_products.contains(&swp.id) {
            debug!("reconcile_work_products: dep-node for {:?} is dirty", swp);
            delete_dirty_work_product(tcx, swp);
        } else {
            let mut all_files_exist = true;
            for &(_, ref file_name) in swp.work_product.saved_files.iter() {
                let path = in_incr_comp_dir_sess(tcx.sess, file_name);
                if !path.exists() {
                    all_files_exist = false;
                    if tcx.sess.opts.debugging_opts.incremental_info {
                        println!("incremental: could not find file for up-to-date work product: {}",
                                 path.display());
                    }
                }
            }
            if all_files_exist {
                debug!("reconcile_work_products: all files for {:?} exist", swp);
                tcx.dep_graph.insert_previous_work_product(&swp.id, swp.work_product);
            } else {
                debug!("reconcile_work_products: some file for {:?} does not exist", swp);
                delete_dirty_work_product(tcx, swp);
            }
        }
    }
}
fn reconcile_work_products < ' a , ' tcx > ( tcx : TyCtxt < ' a , ' tcx , ' tcx > , work_products : Vec < SerializedWorkProduct > , clean_work_products : & FxHashSet < Arc < WorkProductId > > ) { debug ! ( " " work_products ) ; for swp in work_products { if ! clean_work_products . contains ( & swp . id ) { debug ! ( " " swp ) ; delete_dirty_work_product ( tcx , swp ) ; } else { let mut all_files_exist = true ; for & ( _ , ref file_name ) in swp . work_product . saved_files . iter ( ) { let path = in_incr_comp_dir_sess ( tcx . sess , file_name ) ; if ! path . exists ( ) { all_files_exist = false ; if tcx . sess . opts . debugging_opts . incremental_info { println ! ( " " path display ( ) ) ; } } } if all_files_exist { debug ! ( " " swp ) ; tcx . dep_graph . insert_previous_work_product ( & swp . id , swp . work_product ) ; } else { debug ! ( " " swp ) ; delete_dirty_work_product ( tcx , swp ) ; } } } }
Go through the list of work-products produced in the previous run.
Go through the list of work - products produced in the previous run .
tcx
TyCtxt<'a, 'tcx, 'tcx>
work_products
Vec<SerializedWorkProduct>
clean_work_products
&FxHashSet<Arc<WorkProductId>>
tcx
TyCtxt<'a, 'tcx, 'tcx>
work_products
Vec<SerializedWorkProduct>
clean_work_products
&FxHashSet<Arc<WorkProductId>>