Skip to content

Commit

Permalink
no more must-use-candidate on trait impls
Browse files Browse the repository at this point in the history
  • Loading branch information
llogiq committed Nov 12, 2019
1 parent 180f870 commit 5f0f673
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 10 deletions.
7 changes: 5 additions & 2 deletions clippy_lints/src/functions.rs
@@ -1,6 +1,6 @@
use crate::utils::{
attrs::is_proc_macro, iter_input_pats, match_def_path, qpath_res, return_ty, snippet, snippet_opt,
span_help_and_lint, span_lint, span_lint_and_then, type_is_unsafe_function,
span_help_and_lint, span_lint, span_lint_and_then, trait_ref_of_method, type_is_unsafe_function,
};
use matches::matches;
use rustc::hir::{self, def::Res, def_id::DefId, intravisit};
Expand Down Expand Up @@ -254,7 +254,10 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Functions {
if let Some(attr) = attr {
let fn_header_span = item.span.with_hi(sig.decl.output.span().hi());
check_needless_must_use(cx, &sig.decl, item.hir_id, item.span, fn_header_span, attr);
} else if cx.access_levels.is_exported(item.hir_id) && !is_proc_macro(&item.attrs) {
} else if cx.access_levels.is_exported(item.hir_id)
&& !is_proc_macro(&item.attrs)
&& trait_ref_of_method(cx, item.hir_id).is_none()
{
check_must_use_candidate(
cx,
&sig.decl,
Expand Down
2 changes: 1 addition & 1 deletion tests/ui/must_use_candidates.fixed
Expand Up @@ -28,7 +28,7 @@ pub trait MyPureTrait {
}

impl MyPureTrait for MyPure {
#[must_use] fn trait_impl_pure(&self, i: u32) -> u32 {
fn trait_impl_pure(&self, i: u32) -> u32 {
i
}
}
Expand Down
8 changes: 1 addition & 7 deletions tests/ui/must_use_candidates.stderr
Expand Up @@ -12,12 +12,6 @@ error: this method could have a `#[must_use]` attribute
LL | pub fn inherent_pure(&self) -> u8 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn inherent_pure(&self) -> u8`

error: this method could have a `#[must_use]` attribute
--> $DIR/must_use_candidates.rs:31:5
|
LL | fn trait_impl_pure(&self, i: u32) -> u32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] fn trait_impl_pure(&self, i: u32) -> u32`

error: this function could have a `#[must_use]` attribute
--> $DIR/must_use_candidates.rs:48:1
|
Expand All @@ -36,5 +30,5 @@ error: this function could have a `#[must_use]` attribute
LL | pub fn arcd(_x: Arc<u32>) -> bool {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn arcd(_x: Arc<u32>) -> bool`

error: aborting due to 6 previous errors
error: aborting due to 5 previous errors

0 comments on commit 5f0f673

Please sign in to comment.