rust/tests/ui/rc_mutex.rs

41 lines
957 B
Rust
Raw Normal View History

2021-06-03 01:56:34 -05:00
#![warn(clippy::rc_mutex)]
2022-06-08 14:08:37 -05:00
#![allow(unused, clippy::disallowed_names)]
2021-06-03 01:56:34 -05:00
use std::rc::Rc;
use std::sync::Mutex;
pub struct MyStructWithPrivItem {
2021-06-05 08:20:02 -05:00
foo: Rc<Mutex<i32>>,
//~^ ERROR: usage of `Rc<Mutex<_>>`
2021-06-05 08:20:02 -05:00
}
2021-06-03 01:56:34 -05:00
pub struct MyStructWithPubItem {
pub foo: Rc<Mutex<i32>>,
}
2021-06-03 01:56:34 -05:00
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>>) {}
//~^ ERROR: usage of `Rc<Mutex<_>>`
fn test2(foo: Rc<Mutex<MyEnum>>) {}
//~^ ERROR: usage of `Rc<Mutex<_>>`
fn test3(foo: Rc<Mutex<SubT<usize>>>) {}
//~^ ERROR: usage of `Rc<Mutex<_>>`
2021-06-03 01:56:34 -05:00
// 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>>>) {}
2021-06-03 01:56:34 -05:00
fn main() {}