]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/default_trait_access.rs
Rollup merge of #71785 - reitermarkus:cfg-attribute, r=Mark-Simulacrum
[rust.git] / src / tools / clippy / tests / ui / default_trait_access.rs
1 #![warn(clippy::default_trait_access)]
2
3 use std::default;
4 use std::default::Default as D2;
5 use std::string;
6
7 fn main() {
8     let s1: String = Default::default();
9
10     let s2 = String::default();
11
12     let s3: String = D2::default();
13
14     let s4: String = std::default::Default::default();
15
16     let s5 = string::String::default();
17
18     let s6: String = default::Default::default();
19
20     let s7 = std::string::String::default();
21
22     let s8: String = DefaultFactory::make_t_badly();
23
24     let s9: String = DefaultFactory::make_t_nicely();
25
26     let s10 = DerivedDefault::default();
27
28     let s11: GenericDerivedDefault<String> = Default::default();
29
30     let s12 = GenericDerivedDefault::<String>::default();
31
32     let s13 = TupleDerivedDefault::default();
33
34     let s14: TupleDerivedDefault = Default::default();
35
36     let s15: ArrayDerivedDefault = Default::default();
37
38     let s16 = ArrayDerivedDefault::default();
39
40     let s17: TupleStructDerivedDefault = Default::default();
41
42     let s18 = TupleStructDerivedDefault::default();
43
44     let s19 = <DerivedDefault as Default>::default();
45
46     println!(
47         "[{}] [{}] [{}] [{}] [{}] [{}] [{}] [{}] [{}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}], [{:?}]",
48         s1,
49         s2,
50         s3,
51         s4,
52         s5,
53         s6,
54         s7,
55         s8,
56         s9,
57         s10,
58         s11,
59         s12,
60         s13,
61         s14,
62         s15,
63         s16,
64         s17,
65         s18,
66         s19,
67     );
68 }
69
70 struct DefaultFactory;
71
72 impl DefaultFactory {
73     pub fn make_t_badly<T: Default>() -> T {
74         Default::default()
75     }
76
77     pub fn make_t_nicely<T: Default>() -> T {
78         T::default()
79     }
80 }
81
82 #[derive(Debug, Default)]
83 struct DerivedDefault {
84     pub s: String,
85 }
86
87 #[derive(Debug, Default)]
88 struct GenericDerivedDefault<T: Default + std::fmt::Debug> {
89     pub s: T,
90 }
91
92 #[derive(Debug, Default)]
93 struct TupleDerivedDefault {
94     pub s: (String, String),
95 }
96
97 #[derive(Debug, Default)]
98 struct ArrayDerivedDefault {
99     pub s: [String; 10],
100 }
101
102 #[derive(Debug, Default)]
103 struct TupleStructDerivedDefault(String);