Skip to content

Commit 889b361

Browse files
committed
Auto merge of #8990 - tsoutsman:master, r=llogiq
Fix `let_undescore_lock` false-positive when binding without locking Fixes #8486. changelog: Fix `let_undescore_lock` false-positive when binding without locking.
2 parents 6b762ee + 65f700f commit 889b361

File tree

4 files changed

+17
-9
lines changed

4 files changed

+17
-9
lines changed

clippy_lints/src/let_underscore.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,13 @@ declare_clippy_lint! {
9999

100100
declare_lint_pass!(LetUnderscore => [LET_UNDERSCORE_MUST_USE, LET_UNDERSCORE_LOCK, LET_UNDERSCORE_DROP]);
101101

102-
const SYNC_GUARD_PATHS: [&[&str]; 5] = [
102+
const SYNC_GUARD_PATHS: [&[&str]; 6] = [
103103
&paths::MUTEX_GUARD,
104104
&paths::RWLOCK_READ_GUARD,
105105
&paths::RWLOCK_WRITE_GUARD,
106-
&paths::PARKING_LOT_RAWMUTEX,
107-
&paths::PARKING_LOT_RAWRWLOCK,
106+
&paths::PARKING_LOT_MUTEX_GUARD,
107+
&paths::PARKING_LOT_RWLOCK_READ_GUARD,
108+
&paths::PARKING_LOT_RWLOCK_WRITE_GUARD,
108109
];
109110

110111
impl<'tcx> LateLintPass<'tcx> for LetUnderscore {

clippy_utils/src/paths.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,6 @@ pub const OPTION_SOME: [&str; 4] = ["core", "option", "Option", "Some"];
8484
pub const ORD: [&str; 3] = ["core", "cmp", "Ord"];
8585
pub const OS_STRING_AS_OS_STR: [&str; 5] = ["std", "ffi", "os_str", "OsString", "as_os_str"];
8686
pub const OS_STR_TO_OS_STRING: [&str; 5] = ["std", "ffi", "os_str", "OsStr", "to_os_string"];
87-
pub const PARKING_LOT_RAWMUTEX: [&str; 3] = ["parking_lot", "raw_mutex", "RawMutex"];
88-
pub const PARKING_LOT_RAWRWLOCK: [&str; 3] = ["parking_lot", "raw_rwlock", "RawRwLock"];
8987
pub const PARKING_LOT_MUTEX_GUARD: [&str; 3] = ["lock_api", "mutex", "MutexGuard"];
9088
pub const PARKING_LOT_RWLOCK_READ_GUARD: [&str; 3] = ["lock_api", "rwlock", "RwLockReadGuard"];
9189
pub const PARKING_LOT_RWLOCK_WRITE_GUARD: [&str; 3] = ["lock_api", "rwlock", "RwLockWriteGuard"];

tests/ui/let_underscore_lock.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ fn main() {
1313
let _ = rw.try_read();
1414
let _ = rw.try_write();
1515

16+
// These shouldn't throw an error.
17+
let _ = m;
18+
let _ = rw;
19+
1620
use parking_lot::{lock_api::RawMutex, Mutex, RwLock};
1721

1822
let p_m: Mutex<()> = Mutex::const_new(RawMutex::INIT, ());
@@ -24,4 +28,9 @@ fn main() {
2428
let p_rw = RwLock::new(0);
2529
let _ = p_rw.read();
2630
let _ = p_rw.write();
31+
32+
// These shouldn't throw an error.
33+
let _ = p_m;
34+
let _ = p_m1;
35+
let _ = p_rw;
2736
}

tests/ui/let_underscore_lock.stderr

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,31 +48,31 @@ LL | let _ = rw.try_write();
4848
= help: consider using an underscore-prefixed named binding or dropping explicitly with `std::mem::drop`
4949

5050
error: non-binding let on a synchronization lock
51-
--> $DIR/let_underscore_lock.rs:19:5
51+
--> $DIR/let_underscore_lock.rs:23:5
5252
|
5353
LL | let _ = p_m.lock();
5454
| ^^^^^^^^^^^^^^^^^^^
5555
|
5656
= help: consider using an underscore-prefixed named binding or dropping explicitly with `std::mem::drop`
5757

5858
error: non-binding let on a synchronization lock
59-
--> $DIR/let_underscore_lock.rs:22:5
59+
--> $DIR/let_underscore_lock.rs:26:5
6060
|
6161
LL | let _ = p_m1.lock();
6262
| ^^^^^^^^^^^^^^^^^^^^
6363
|
6464
= help: consider using an underscore-prefixed named binding or dropping explicitly with `std::mem::drop`
6565

6666
error: non-binding let on a synchronization lock
67-
--> $DIR/let_underscore_lock.rs:25:5
67+
--> $DIR/let_underscore_lock.rs:29:5
6868
|
6969
LL | let _ = p_rw.read();
7070
| ^^^^^^^^^^^^^^^^^^^^
7171
|
7272
= help: consider using an underscore-prefixed named binding or dropping explicitly with `std::mem::drop`
7373

7474
error: non-binding let on a synchronization lock
75-
--> $DIR/let_underscore_lock.rs:26:5
75+
--> $DIR/let_underscore_lock.rs:30:5
7676
|
7777
LL | let _ = p_rw.write();
7878
| ^^^^^^^^^^^^^^^^^^^^^

0 commit comments

Comments
 (0)