#![warn(clippy::rc_mutex)] #![allow(unused, clippy::disallowed_names)] use std::rc::Rc; use std::sync::Mutex; pub struct MyStructWithPrivItem { foo: Rc>, //~^ ERROR: usage of `Rc>` } pub struct MyStructWithPubItem { pub foo: Rc>, } pub struct SubT { 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(foo: Rc>) {} //~^ ERROR: usage of `Rc>` fn test2(foo: Rc>) {} //~^ ERROR: usage of `Rc>` fn test3(foo: Rc>>) {} //~^ ERROR: usage of `Rc>` // 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(foo: Rc>) {} pub fn pub_test2(foo: Rc>) {} pub fn pub_test3(foo: Rc>>) {} fn main() {}