mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 06:44:35 +00:00
Querify unused trait check.
This commit is contained in:
parent
c4083faade
commit
a4a5e5b4ae
@ -1,11 +1,16 @@
|
||||
use rustc_data_structures::unord::{ExtendUnord, UnordSet};
|
||||
use rustc_hir::def::DefKind;
|
||||
use rustc_hir::def_id::LocalDefId;
|
||||
use rustc_middle::query::Providers;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
use rustc_session::lint;
|
||||
|
||||
pub fn check_crate(tcx: TyCtxt<'_>) {
|
||||
let mut used_trait_imports: UnordSet<LocalDefId> = Default::default();
|
||||
pub fn provide(providers: &mut Providers) {
|
||||
*providers = Providers { check_unused_traits, ..*providers };
|
||||
}
|
||||
|
||||
fn check_unused_traits(tcx: TyCtxt<'_>, (): ()) {
|
||||
let mut used_trait_imports = UnordSet::<LocalDefId>::default();
|
||||
|
||||
// FIXME: Use `tcx.hir().par_body_owners()` when we implement creating `DefId`s
|
||||
// for anon constants during their parents' typeck.
|
||||
|
@ -177,6 +177,7 @@ pub fn provide(providers: &mut Providers) {
|
||||
collect::provide(providers);
|
||||
coherence::provide(providers);
|
||||
check::provide(providers);
|
||||
check_unused::provide(providers);
|
||||
variance::provide(providers);
|
||||
outlives::provide(providers);
|
||||
impl_wf_check::provide(providers);
|
||||
@ -247,7 +248,7 @@ pub fn check_crate(tcx: TyCtxt<'_>) -> Result<(), ErrorGuaranteed> {
|
||||
}
|
||||
});
|
||||
|
||||
check_unused::check_crate(tcx);
|
||||
tcx.ensure().check_unused_traits(());
|
||||
|
||||
if let Some(reported) = tcx.sess.has_errors() { Err(reported) } else { Ok(()) }
|
||||
}
|
||||
|
@ -898,6 +898,10 @@ rustc_queries! {
|
||||
desc { |tcx| "linting {}", describe_as_module(key, tcx) }
|
||||
}
|
||||
|
||||
query check_unused_traits(_: ()) -> () {
|
||||
desc { "checking unused trait imports in crate" }
|
||||
}
|
||||
|
||||
/// Checks the attributes in the module.
|
||||
query check_mod_attrs(key: LocalDefId) -> () {
|
||||
desc { |tcx| "checking attributes in {}", describe_as_module(key, tcx) }
|
||||
|
@ -420,13 +420,13 @@ trait TraitAddExternModifier {
|
||||
// -------------------------
|
||||
// --------------------------------------------------------------------
|
||||
// -------------------------
|
||||
fn method() ;
|
||||
fn method();
|
||||
}
|
||||
|
||||
#[cfg(not(any(cfail1,cfail4)))]
|
||||
#[rustc_clean(cfg="cfail2")]
|
||||
#[rustc_clean(cfg="cfail3")]
|
||||
#[rustc_clean(except="hir_owner", cfg="cfail5")]
|
||||
#[rustc_clean(cfg="cfail5")]
|
||||
#[rustc_clean(cfg="cfail6")]
|
||||
trait TraitAddExternModifier {
|
||||
#[rustc_clean(except="hir_owner,hir_owner_nodes,fn_sig", cfg="cfail2")]
|
||||
|
Loading…
Reference in New Issue
Block a user