mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-03 04:04:06 +00:00
Recognise #[must_use] on traits, affecting impl Trait
This commit is contained in:
parent
b55717f9b0
commit
cb5520bc48
@ -66,9 +66,22 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnusedResults {
|
||||
} else {
|
||||
match t.sty {
|
||||
ty::Adt(def, _) => check_must_use(cx, def.did, s.span, ""),
|
||||
ty::Opaque(def, _) => {
|
||||
let mut must_use = false;
|
||||
for (predicate, _) in cx.tcx.predicates_of(def).predicates {
|
||||
if let ty::Predicate::Trait(ref poly_trait_predicate) = predicate {
|
||||
let trait_ref = poly_trait_predicate.skip_binder().trait_ref;
|
||||
if check_must_use(cx, trait_ref.def_id, s.span, "implementer of ") {
|
||||
must_use = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
must_use
|
||||
}
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let mut fn_warned = false;
|
||||
let mut op_warned = false;
|
||||
|
Loading…
Reference in New Issue
Block a user