| #![warn(clippy::rc_mutex)] |
| #![allow(unused, clippy::disallowed_names)] |
| |
| use std::rc::Rc; |
| use std::sync::Mutex; |
| |
| pub struct MyStructWithPrivItem { |
| foo: Rc<Mutex<i32>>, |
| //~^ rc_mutex |
| } |
| |
| pub struct MyStructWithPubItem { |
| pub foo: Rc<Mutex<i32>>, |
| } |
| |
| pub struct SubT<T> { |
| foo: T, |
| } |
| |
| pub enum MyEnum { |
| One, |
| Two, |
| } |
| |
| // All of these test should be trigger the lint because they are not |
| // part of the public api |
| fn test1<T>(foo: Rc<Mutex<T>>) {} |
| //~^ rc_mutex |
| |
| fn test2(foo: Rc<Mutex<MyEnum>>) {} |
| //~^ rc_mutex |
| |
| fn test3(foo: Rc<Mutex<SubT<usize>>>) {} |
| //~^ rc_mutex |
| |
| // All of these test should be allowed because they are part of the |
| // public api and `avoid_breaking_exported_api` is `false` by default. |
| pub fn pub_test1<T>(foo: Rc<Mutex<T>>) {} |
| pub fn pub_test2(foo: Rc<Mutex<MyEnum>>) {} |
| pub fn pub_test3(foo: Rc<Mutex<SubT<usize>>>) {} |
| |
| fn main() {} |