Fix let_undescore_lock
false-positive when binding without locking
Signed-off-by: Klim Tsoutsman <klimusha@gmail.com>
This commit is contained in:
parent
6b762ee330
commit
65f700fa89
@ -99,12 +99,13 @@ declare_clippy_lint! {
|
||||
|
||||
declare_lint_pass!(LetUnderscore => [LET_UNDERSCORE_MUST_USE, LET_UNDERSCORE_LOCK, LET_UNDERSCORE_DROP]);
|
||||
|
||||
const SYNC_GUARD_PATHS: [&[&str]; 5] = [
|
||||
const SYNC_GUARD_PATHS: [&[&str]; 6] = [
|
||||
&paths::MUTEX_GUARD,
|
||||
&paths::RWLOCK_READ_GUARD,
|
||||
&paths::RWLOCK_WRITE_GUARD,
|
||||
&paths::PARKING_LOT_RAWMUTEX,
|
||||
&paths::PARKING_LOT_RAWRWLOCK,
|
||||
&paths::PARKING_LOT_MUTEX_GUARD,
|
||||
&paths::PARKING_LOT_RWLOCK_READ_GUARD,
|
||||
&paths::PARKING_LOT_RWLOCK_WRITE_GUARD,
|
||||
];
|
||||
|
||||
impl<'tcx> LateLintPass<'tcx> for LetUnderscore {
|
||||
|
@ -84,8 +84,6 @@ pub const OPTION_SOME: [&str; 4] = ["core", "option", "Option", "Some"];
|
||||
pub const ORD: [&str; 3] = ["core", "cmp", "Ord"];
|
||||
pub const OS_STRING_AS_OS_STR: [&str; 5] = ["std", "ffi", "os_str", "OsString", "as_os_str"];
|
||||
pub const OS_STR_TO_OS_STRING: [&str; 5] = ["std", "ffi", "os_str", "OsStr", "to_os_string"];
|
||||
pub const PARKING_LOT_RAWMUTEX: [&str; 3] = ["parking_lot", "raw_mutex", "RawMutex"];
|
||||
pub const PARKING_LOT_RAWRWLOCK: [&str; 3] = ["parking_lot", "raw_rwlock", "RawRwLock"];
|
||||
pub const PARKING_LOT_MUTEX_GUARD: [&str; 3] = ["lock_api", "mutex", "MutexGuard"];
|
||||
pub const PARKING_LOT_RWLOCK_READ_GUARD: [&str; 3] = ["lock_api", "rwlock", "RwLockReadGuard"];
|
||||
pub const PARKING_LOT_RWLOCK_WRITE_GUARD: [&str; 3] = ["lock_api", "rwlock", "RwLockWriteGuard"];
|
||||
|
@ -13,6 +13,10 @@ fn main() {
|
||||
let _ = rw.try_read();
|
||||
let _ = rw.try_write();
|
||||
|
||||
// These shouldn't throw an error.
|
||||
let _ = m;
|
||||
let _ = rw;
|
||||
|
||||
use parking_lot::{lock_api::RawMutex, Mutex, RwLock};
|
||||
|
||||
let p_m: Mutex<()> = Mutex::const_new(RawMutex::INIT, ());
|
||||
@ -24,4 +28,9 @@ fn main() {
|
||||
let p_rw = RwLock::new(0);
|
||||
let _ = p_rw.read();
|
||||
let _ = p_rw.write();
|
||||
|
||||
// These shouldn't throw an error.
|
||||
let _ = p_m;
|
||||
let _ = p_m1;
|
||||
let _ = p_rw;
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ LL | let _ = rw.try_write();
|
||||
= help: consider using an underscore-prefixed named binding or dropping explicitly with `std::mem::drop`
|
||||
|
||||
error: non-binding let on a synchronization lock
|
||||
--> $DIR/let_underscore_lock.rs:19:5
|
||||
--> $DIR/let_underscore_lock.rs:23:5
|
||||
|
|
||||
LL | let _ = p_m.lock();
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
@ -56,7 +56,7 @@ LL | let _ = p_m.lock();
|
||||
= help: consider using an underscore-prefixed named binding or dropping explicitly with `std::mem::drop`
|
||||
|
||||
error: non-binding let on a synchronization lock
|
||||
--> $DIR/let_underscore_lock.rs:22:5
|
||||
--> $DIR/let_underscore_lock.rs:26:5
|
||||
|
|
||||
LL | let _ = p_m1.lock();
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
@ -64,7 +64,7 @@ LL | let _ = p_m1.lock();
|
||||
= help: consider using an underscore-prefixed named binding or dropping explicitly with `std::mem::drop`
|
||||
|
||||
error: non-binding let on a synchronization lock
|
||||
--> $DIR/let_underscore_lock.rs:25:5
|
||||
--> $DIR/let_underscore_lock.rs:29:5
|
||||
|
|
||||
LL | let _ = p_rw.read();
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
@ -72,7 +72,7 @@ LL | let _ = p_rw.read();
|
||||
= help: consider using an underscore-prefixed named binding or dropping explicitly with `std::mem::drop`
|
||||
|
||||
error: non-binding let on a synchronization lock
|
||||
--> $DIR/let_underscore_lock.rs:26:5
|
||||
--> $DIR/let_underscore_lock.rs:30:5
|
||||
|
|
||||
LL | let _ = p_rw.write();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^
|
||||
|
Loading…
x
Reference in New Issue
Block a user