#![warn(clippy::all)] #![allow(clippy::boxed_local, clippy::needless_pass_by_value)] #![allow(clippy::disallowed_names, unused_variables, dead_code)] #![allow(unused_imports)] pub struct MyStruct; pub struct SubT<T> { foo: T, } pub enum MyEnum { One, Two, } mod outer_box { use crate::{MyEnum, MyStruct, SubT}; use std::boxed::Box; use std::rc::Rc; use std::sync::Arc; pub fn box_test1<T>(foo: &T) {} pub fn box_test2(foo: &MyStruct) {} pub fn box_test3(foo: &MyEnum) {} pub fn box_test4_neg(foo: Box<SubT<&usize>>) {} pub fn box_test5<T>(foo: Box<T>) {} } mod outer_rc { use crate::{MyEnum, MyStruct, SubT}; use std::boxed::Box; use std::rc::Rc; use std::sync::Arc; pub fn rc_test1<T>(foo: &T) {} pub fn rc_test2(foo: &MyStruct) {} pub fn rc_test3(foo: &MyEnum) {} pub fn rc_test4_neg(foo: Rc<SubT<&usize>>) {} pub fn rc_test6(a: Rc<bool>) {} } mod outer_arc { use crate::{MyEnum, MyStruct, SubT}; use std::boxed::Box; use std::rc::Rc; use std::sync::Arc; pub fn arc_test1<T>(foo: &T) {} pub fn arc_test2(foo: &MyStruct) {} pub fn arc_test3(foo: &MyEnum) {} pub fn arc_test4_neg(foo: Arc<SubT<&usize>>) {} pub fn arc_test7(a: Arc<bool>) {} } fn main() {}