@@ -19,7 +19,6 @@ use rustc_front::intravisit::{self, Visitor};
1919use middle:: { def, pat_util, privacy, ty} ;
2020use middle:: def_id:: { DefId } ;
2121use lint;
22- use util:: nodemap:: NodeSet ;
2322
2423use std:: collections:: HashSet ;
2524use syntax:: { ast, codemap} ;
@@ -370,25 +369,10 @@ impl<'v> Visitor<'v> for LifeSeeder {
370369}
371370
372371fn create_and_seed_worklist ( tcx : & ty:: ctxt ,
373- exported_items : & privacy:: ExportedItems ,
374- reachable_symbols : & NodeSet ,
372+ access_levels : & privacy:: AccessLevels ,
375373 krate : & hir:: Crate ) -> Vec < ast:: NodeId > {
376374 let mut worklist = Vec :: new ( ) ;
377-
378- // Preferably, we would only need to seed the worklist with reachable
379- // symbols. However, since the set of reachable symbols differs
380- // depending on whether a crate is built as bin or lib, and we want
381- // the warning to be consistent, we also seed the worklist with
382- // exported symbols.
383- for id in exported_items {
384- worklist. push ( * id) ;
385- }
386- for id in reachable_symbols {
387- // Reachable variants can be dead, because we warn about
388- // variants never constructed, not variants never used.
389- if let Some ( ast_map:: NodeVariant ( ..) ) = tcx. map . find ( * id) {
390- continue ;
391- }
375+ for ( id, _) in & access_levels. map {
392376 worklist. push ( * id) ;
393377 }
394378
@@ -408,12 +392,10 @@ fn create_and_seed_worklist(tcx: &ty::ctxt,
408392}
409393
410394fn find_live ( tcx : & ty:: ctxt ,
411- exported_items : & privacy:: ExportedItems ,
412- reachable_symbols : & NodeSet ,
395+ access_levels : & privacy:: AccessLevels ,
413396 krate : & hir:: Crate )
414397 -> Box < HashSet < ast:: NodeId > > {
415- let worklist = create_and_seed_worklist ( tcx, exported_items,
416- reachable_symbols, krate) ;
398+ let worklist = create_and_seed_worklist ( tcx, access_levels, krate) ;
417399 let mut symbol_visitor = MarkSymbolVisitor :: new ( tcx, worklist) ;
418400 symbol_visitor. mark_live_symbols ( ) ;
419401 symbol_visitor. live_symbols
@@ -607,12 +589,9 @@ impl<'a, 'tcx, 'v> Visitor<'v> for DeadVisitor<'a, 'tcx> {
607589 }
608590}
609591
610- pub fn check_crate ( tcx : & ty:: ctxt ,
611- exported_items : & privacy:: ExportedItems ,
612- reachable_symbols : & NodeSet ) {
592+ pub fn check_crate ( tcx : & ty:: ctxt , access_levels : & privacy:: AccessLevels ) {
613593 let krate = tcx. map . krate ( ) ;
614- let live_symbols = find_live ( tcx, exported_items,
615- reachable_symbols, krate) ;
594+ let live_symbols = find_live ( tcx, access_levels, krate) ;
616595 let mut visitor = DeadVisitor { tcx : tcx, live_symbols : live_symbols } ;
617596 intravisit:: walk_crate ( & mut visitor, krate) ;
618597}
0 commit comments