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