Auto merge of #93466 - cjgillot:query-dead, r=nagisa
Make dead code check a query. Dead code check is run for each invocation of the compiler, even if no modifications were involved. This PR makes dead code check a query keyed on the module. This allows to skip the check when a module has not changed. To perform this, a query `live_symbols_and_ignored_derived_traits` is introduced to encapsulate the global analysis of finding live symbols. The second query `check_mod_deathness` outputs diagnostics for each module based on this first query's results.
This commit is contained in:
commit
d5f9c40e6a
5 changed files with 62 additions and 33 deletions
|
@ -999,7 +999,8 @@ fn analysis(tcx: TyCtxt<'_>, (): ()) -> Result<()> {
|
|||
tcx.ensure().check_private_in_public(());
|
||||
},
|
||||
{
|
||||
sess.time("death_checking", || rustc_passes::dead::check_crate(tcx));
|
||||
tcx.hir()
|
||||
.par_for_each_module(|module| tcx.ensure().check_mod_deathness(module));
|
||||
},
|
||||
{
|
||||
sess.time("unused_lib_feature_checking", || {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue