blob: dbc6c0794d1a72458b5cd4aa8e919a7f52cb09dc [file] [log] [blame]
#![allow(clippy::boxed_local, clippy::needless_pass_by_value)]
#![allow(clippy::disallowed_names)]
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) {}
//~^ redundant_allocation
pub fn box_test2(foo: &MyStruct) {}
//~^ redundant_allocation
pub fn box_test3(foo: &MyEnum) {}
//~^ redundant_allocation
pub fn box_test4_neg(foo: Box<SubT<&usize>>) {}
pub fn box_test5<T>(foo: Box<T>) {}
//~^ redundant_allocation
}
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) {}
//~^ redundant_allocation
pub fn rc_test2(foo: &MyStruct) {}
//~^ redundant_allocation
pub fn rc_test3(foo: &MyEnum) {}
//~^ redundant_allocation
pub fn rc_test4_neg(foo: Rc<SubT<&usize>>) {}
pub fn rc_test6(a: Rc<bool>) {}
//~^ redundant_allocation
}
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) {}
//~^ redundant_allocation
pub fn arc_test2(foo: &MyStruct) {}
//~^ redundant_allocation
pub fn arc_test3(foo: &MyEnum) {}
//~^ redundant_allocation
pub fn arc_test4_neg(foo: Arc<SubT<&usize>>) {}
pub fn arc_test7(a: Arc<bool>) {}
//~^ redundant_allocation
}
fn main() {}