3 #![allow(unused_imports, dead_code)]
4 #![deny(clippy::default_trait_access)]
7 use std::default::Default as D2;
11 let s1: String = Default::default();
13 let s2 = String::default();
15 let s3: String = D2::default();
17 let s4: String = std::default::Default::default();
19 let s5 = string::String::default();
21 let s6: String = default::Default::default();
23 let s7 = std::string::String::default();
25 let s8: String = DefaultFactory::make_t_badly();
27 let s9: String = DefaultFactory::make_t_nicely();
29 let s10 = DerivedDefault::default();
31 let s11: GenericDerivedDefault<String> = Default::default();
33 let s12 = GenericDerivedDefault::<String>::default();
35 let s13 = TupleDerivedDefault::default();
37 let s14: TupleDerivedDefault = Default::default();
39 let s15: ArrayDerivedDefault = Default::default();
41 let s16 = ArrayDerivedDefault::default();
43 let s17: TupleStructDerivedDefault = Default::default();
45 let s18 = TupleStructDerivedDefault::default();
47 let s19 = <DerivedDefault as Default>::default();
50 "[{}] [{}] [{}] [{}] [{}] [{}] [{}] [{}] [{}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}] [{:?}], [{:?}]",
51 s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19,
55 struct DefaultFactory;
58 pub fn make_t_badly<T: Default>() -> T {
62 pub fn make_t_nicely<T: Default>() -> T {
67 #[derive(Debug, Default)]
68 struct DerivedDefault {
72 #[derive(Debug, Default)]
73 struct GenericDerivedDefault<T: Default + std::fmt::Debug> {
77 #[derive(Debug, Default)]
78 struct TupleDerivedDefault {
79 pub s: (String, String),
82 #[derive(Debug, Default)]
83 struct ArrayDerivedDefault {
87 #[derive(Debug, Default)]
88 struct TupleStructDerivedDefault(String);