Updated lint message for rc_mutex

This commit is contained in:
xFrednet 2021-08-12 12:11:26 +02:00
parent 7bfc26ec8e
commit 09b7745f34
2 changed files with 17 additions and 9 deletions

View File

@ -1,4 +1,4 @@
use clippy_utils::diagnostics::span_lint; use clippy_utils::diagnostics::span_lint_and_help;
use clippy_utils::is_ty_param_diagnostic_item; use clippy_utils::is_ty_param_diagnostic_item;
use if_chain::if_chain; use if_chain::if_chain;
use rustc_hir::{self as hir, def_id::DefId, QPath}; use rustc_hir::{self as hir, def_id::DefId, QPath};
@ -11,13 +11,14 @@ pub(super) fn check(cx: &LateContext<'_>, hir_ty: &hir::Ty<'_>, qpath: &QPath<'_
if_chain! { if_chain! {
if cx.tcx.is_diagnostic_item(sym::Rc, def_id) ; if cx.tcx.is_diagnostic_item(sym::Rc, def_id) ;
if let Some(_) = is_ty_param_diagnostic_item(cx, qpath, sym!(mutex_type)) ; if let Some(_) = is_ty_param_diagnostic_item(cx, qpath, sym!(mutex_type)) ;
then { then {
span_lint( span_lint_and_help(
cx, cx,
RC_MUTEX, RC_MUTEX,
hir_ty.span, hir_ty.span,
"found `Rc<Mutex<_>>`. Consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead", "usage of `Rc<Mutex<_>>`",
None,
"consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead",
); );
return true; return true;
} }

View File

@ -1,28 +1,35 @@
error: found `Rc<Mutex<_>>`. Consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead error: usage of `Rc<Mutex<_>>`
--> $DIR/rc_mutex.rs:8:10 --> $DIR/rc_mutex.rs:8:10
| |
LL | foo: Rc<Mutex<i32>>, LL | foo: Rc<Mutex<i32>>,
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
| |
= note: `-D clippy::rc-mutex` implied by `-D warnings` = note: `-D clippy::rc-mutex` implied by `-D warnings`
= help: consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead
error: found `Rc<Mutex<_>>`. Consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead error: usage of `Rc<Mutex<_>>`
--> $DIR/rc_mutex.rs:20:22 --> $DIR/rc_mutex.rs:20:22
| |
LL | pub fn test1<T>(foo: Rc<Mutex<T>>) {} LL | pub fn test1<T>(foo: Rc<Mutex<T>>) {}
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^
|
= help: consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead
error: found `Rc<Mutex<_>>`. Consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead error: usage of `Rc<Mutex<_>>`
--> $DIR/rc_mutex.rs:22:19 --> $DIR/rc_mutex.rs:22:19
| |
LL | pub fn test2(foo: Rc<Mutex<MyEnum>>) {} LL | pub fn test2(foo: Rc<Mutex<MyEnum>>) {}
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
|
= help: consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead
error: found `Rc<Mutex<_>>`. Consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead error: usage of `Rc<Mutex<_>>`
--> $DIR/rc_mutex.rs:24:19 --> $DIR/rc_mutex.rs:24:19
| |
LL | pub fn test3(foo: Rc<Mutex<SubT<usize>>>) {} LL | pub fn test3(foo: Rc<Mutex<SubT<usize>>>) {}
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
|
= help: consider using `Rc<RefCell<_>>` or `Arc<Mutex<_>>` instead
error: aborting due to 4 previous errors error: aborting due to 4 previous errors