]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/box_collection.rs
0780c8f0586e0a4740754920ff3d783226b2d22f
[rustc.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::new(), 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::new(Vec::new())
54 }
55
56 fn main() {}