]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/box_collection.rs
Rollup merge of #102092 - kxxt:patch-1, r=joshtriplett
[rust.git] / src / tools / clippy / tests / ui / box_collection.rs
1 #![warn(clippy::all)]
2 #![allow(
3     clippy::boxed_local,
4     clippy::needless_pass_by_value,
5     clippy::disallowed_names,
6     unused
7 )]
8
9 use std::collections::{BTreeMap, BTreeSet, BinaryHeap, HashMap, HashSet, LinkedList, VecDeque};
10
11 macro_rules! boxit {
12     ($init:expr, $x:ty) => {
13         let _: Box<$x> = Box::new($init);
14     };
15 }
16
17 fn test_macro() {
18     boxit!(vec![1], Vec<u8>);
19 }
20
21 fn test1(foo: Box<Vec<bool>>) {}
22
23 fn test2(foo: Box<dyn Fn(Vec<u32>)>) {
24     // pass if #31 is fixed
25     foo(vec![1, 2, 3])
26 }
27
28 fn test3(foo: Box<String>) {}
29
30 fn test4(foo: Box<HashMap<String, String>>) {}
31
32 fn test5(foo: Box<HashSet<i64>>) {}
33
34 fn test6(foo: Box<VecDeque<i32>>) {}
35
36 fn test7(foo: Box<LinkedList<i16>>) {}
37
38 fn test8(foo: Box<BTreeMap<i8, String>>) {}
39
40 fn test9(foo: Box<BTreeSet<u64>>) {}
41
42 fn test10(foo: Box<BinaryHeap<u32>>) {}
43
44 fn test_local_not_linted() {
45     let _: Box<Vec<bool>>;
46 }
47
48 // All of these test should be allowed because they are part of the
49 // public api and `avoid_breaking_exported_api` is `false` by default.
50 pub fn pub_test(foo: Box<Vec<bool>>) {}
51
52 pub fn pub_test_ret() -> Box<Vec<bool>> {
53     Box::default()
54 }
55
56 fn main() {}