| #![warn(clippy::let_underscore_lock)] | |
| extern crate parking_lot; | |
| fn main() { | |
| use parking_lot::lock_api::RawMutex; | |
| use parking_lot::{Mutex, RwLock}; | |
| let p_m: Mutex<()> = Mutex::const_new(RawMutex::INIT, ()); | |
| let _ = p_m.lock(); | |
| //~^ ERROR: non-binding `let` on a synchronization lock | |
| let p_m1 = Mutex::new(0); | |
| let _ = p_m1.lock(); | |
| //~^ ERROR: non-binding `let` on a synchronization lock | |
| let p_rw = RwLock::new(0); | |
| let _ = p_rw.read(); | |
| //~^ ERROR: non-binding `let` on a synchronization lock | |
| let _ = p_rw.write(); | |
| //~^ ERROR: non-binding `let` on a synchronization lock | |
| // These shouldn't throw an error. | |
| let _ = p_m; | |
| let _ = p_m1; | |
| let _ = p_rw; | |
| } | |
| #[allow(let_underscore_lock)] | |
| fn uplifted() { | |
| // shouldn't lint std locks as they were uplifted as rustc's `let_underscore_lock` | |
| let m = std::sync::Mutex::new(()); | |
| let rw = std::sync::RwLock::new(()); | |
| let _ = m.lock(); | |
| let _ = rw.read(); | |
| let _ = rw.write(); | |
| let _ = m.try_lock(); | |
| let _ = rw.try_read(); | |
| let _ = rw.try_write(); | |
| let _ = m; | |
| let _ = rw; | |
| } |